Hugo Pipes
在assets中查找资源
这是关于全局和远程资源的内容。
- 全局资源
- 位于assets目录内或任何挂载到assets目录的目录内的文件。
- 远程资源
- 位于远程服务器上,通过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" | resources.ToCSS | 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可以在执行数千次或数百万次的模板中使用,而不会对构建性能产生负面影响。