靜態網站產生器,可讓您使用您已知的 HTTP 伺服器和框架。只需告訴 Staticgen 如何啟動您的伺服器,然後觀察它抓取您的網站並產生包含所需所有頁面和資源的靜態版本。
如果您不熟悉,您實際上可以使用幾十年前的wget 命令從動態網站輸出靜態網站,該專案是為了相同的想法而專門構建的,讓您的團隊可以使用您正在使用的任何HTTP 伺服器和框架已經熟悉任何語言。
我還沒有進行任何科學基準測試或比較,但以下是我的 2014 年 8 核心 MBP 的一些結果:
通過 gobinaries.com:
$ curl -sf https://gobinaries.com/tj/staticgen/cmd/staticgen | sh配置儲存在專案根目錄中的./static.json檔案中。可以使用以下選項:
"http://127.0.0.1:3000" 。"build" 。[] 。30 。 先建立./static.json設定文件,例如這是 Go 伺服器的配置,唯一需要的屬性是command :
{
"command" : " go run main.go " ,
"concurrency" : 50 ,
"dir" : " dist "
}以下是 Node.js 伺服器的範例,請注意, NODE_ENV已指派給生產環境,以便使用 Express 範本快取等最佳化來提高服務效能。
{
"command" : " NODE_ENV=production node server.js "
}運行staticgen指令啟動預渲染過程:
$ staticgen
Staticgen 執行您提供的command ,等待伺服器在設定的url上可用。頁面和資源將複製到配置的dir ,然後您的伺服器將關閉。
預設情況下,生成過程的超時時間為 15 分鐘,根據您的情況,您可能需要使用-t, --timeout標誌來增加或減少此超時時間,以下是一些示例:
$ staticgen -t 30s
$ staticgen -t 15m
$ staticgen -t 1h
啟動command時,Staticgen 將STATICGEN環境變數設為1 ,讓您在必要時變更行為。
若要查看預先渲染的站點,請執行以下命令來啟動靜態檔案伺服器並開啟瀏覽器:
$ staticgen serve
有關完整範例,請參閱範例目錄。
Staticgen 不會使用無頭瀏覽器進行預渲染,這使得速度更快,但這意味著您不能依賴客戶端 JavaScript 來操作頁面。
該專案由 CTO.ai 贊助,使開發團隊無需離開命令列即可輕鬆創建和共享工作流程自動化。
還有我的 GitHub 贊助商: