Hugo 管道
在 assets 中查找资源
这与全局和远程资源有关。
- 全局资源
assets
目录中的文件,或任何 挂载 到assets
目录的目录中的文件。- 远程资源
- 可经由 HTTP 或 HTTPS 访问的远程服务器上的文件。
对于 .Page
范围内的资源,请参阅页面资源部分。
获取资源
为了使用 Hugo 管道处理资源,必须将其检索为资源。
对于全局资源,请使用
对于远程资源,请使用
有关此命名空间中所有模板函数的最新概述,请参阅 GoDoc 页面上的 resources
包。
复制资源
请参阅resources.Copy
函数。
资源目录
资源文件必须存储在资源目录中。默认为 assets
,但可以通过配置文件中的 assetDir
键进行配置。
资源发布
当您调用 .Permalink
、.RelPermalink
或 .Publish
时,Hugo 会将资源发布到 publishDir
(通常为 public
)。您可以使用 .Content
来内联资源。
Go 管道
为了提高可读性,本文档的 Hugo 管道示例将使用 Go 管道编写
{{ $style := resources.Get "sass/main.scss" | css.Sass | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.Permalink }}">
缓存
Hugo 管道调用基于整个管道链进行缓存。
管道链的示例是
{{ $mainJs := resources.Get "js/main.js" | js.Build "main.js" | minify | fingerprint }}
管道链仅在站点构建中首次遇到时被调用,否则将从缓存中加载结果。因此,Hugo 管道可以在执行数千次或数百万次的模板中使用,而不会对构建性能产生负面影响。