ASSET MANAGEMENT

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 可以在執行成千上萬或百萬次的範本中使用,而不會對建置效能造成負面影響。