Hugo Pipes
在资源中查找资源
本节介绍全局资源和远程资源。
- 全局资源
- assets 目录内或已 挂载 到 assets 目录的任何目录内的文件。
- 远程资源
- 远程服务器上的文件,可通过 HTTP 或 HTTPS 访问。
有关 .Page
作用域的资源,请参阅 页面资源 部分。
获取资源
为了使用 Hugo Pipes 处理资源,必须将其作为资源检索。
对于全局资源,请使用:
对于远程资源,请使用:
有关此命名空间中所有模板函数的最新概述,请参阅 GoDoc 页面 。
复制资源
请参阅 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 可用于执行数千次或数百万次的模板,而不会对构建性能产生负面影响。