Hugo Pipes
在資源中尋找
這部分介紹全域資源與遠端資源。
- 全域資源
- 資料夾內的檔案,或是任何掛載到資源資料夾中的資料夾。
- 遠端資源
- 位於遠端伺服器上的檔案,可以通過 HTTP 或 HTTPS 訪問。
有關 .Page
範圍的資源,請參見 頁面資源 部分。
取得資源
為了使用 Hugo Pipes 處理資源,必須先將其作為資源取得。
對於全域資源,請使用:
對於遠端資源,請使用:
請參閱 GoDoc 頁面 獲取 resources
套件的最新概覽,了解此命名空間中的所有範本函數。
複製資源
請參見 resources.Copy
函數。
資源目錄
資源檔案必須儲存在資源目錄中。預設為 /assets
,但可以透過配置檔中的 assetDir
鍵來設定。
資源發布
當您呼叫 .Permalink
、.RelPermalink
或 .Publish
時,Hugo 會將資源發布到 publishDir
(通常為 public
)。您也可以使用 .Content
來內嵌資源。
Go Pipes
為了提高可讀性,本文件中的 Hugo Pipes 範例將使用 Go Pipes 撰寫:
{{ $style := resources.Get "sass/main.scss" | css.Sass | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.Permalink }}">
快取
Hugo Pipes 的呼叫是基於整個 管道鏈 進行快取的。
一個管道鏈的範例是:
{{ $mainJs := resources.Get "js/main.js" | js.Build "main.js" | minify | fingerprint }}
當第一次在網站建置中遇到管道鏈時,會觸發該管道鏈,並將結果載入快取。在隨後的建置中,則會從快取載入結果。因此,Hugo Pipes 可以在執行成千上萬或百萬次的範本中使用,而不會對建置效能造成負面影響。