缓存配置
配置文件缓存的用途、键、路径标记与垃圾回收。
默认配置
[caches]
[caches.assets]
dir = ':resourceDir/_gen'
maxAge = -1
[caches.getresource]
dir = ':cacheDir/:project'
maxAge = -1
[caches.images]
dir = ':resourceDir/_gen'
maxAge = -1
[caches.misc]
dir = ':cacheDir/:project'
maxAge = -1
[caches.modulegitinfo]
dir = ':cacheDir/modules'
maxAge = '24h'
[caches.modulequeries]
dir = ':cacheDir/modules'
maxAge = '24h'
[caches.modules]
dir = ':cacheDir/modules'
maxAge = -1用途
Hugo 用文件缓存把数据保存在磁盘上,既避免同一次构建中重复执行相同操作,也让数据可以跨构建持续保留。
| 键名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
assets |
map |
见上文 | 缓存已处理的 CSS 与 Sass 资源。 |
getresource |
map |
见上文 | 缓存通过 resources.GetRemote 函数从远程 URL 获取的文件。 |
images |
map |
见上文 | 缓存已处理的图片。 |
misc |
map |
见上文 | 缓存杂项数据,例如 transform.ToMath 函数的结果。 |
modulegitinfo |
map |
见上文 | 缓存模块的 Git 信息。 |
modulequeries |
map |
见上文 | 缓存模块解析查询的结果。 |
modules |
map |
见上文 | 缓存已下载的模块。 |
键
每个缓存分组都支持以下两个键:
| 键名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
dir |
string |
见上文 | Hugo 存放缓存文件的绝对文件系统路径。路径可以以 :cacheDir 或 :resourceDir 标记开头,把缓存锚定到特定的系统或项目位置。 |
maxAge |
string |
-1 |
缓存条目在被清除前保持有效的时长,用时长表示。值为 0 表示对该键禁用缓存,值为 -1 表示缓存条目永不过期。 |
路径标记
| 标记 | 类型 | 说明 |
|---|---|---|
:cacheDir |
string |
指定的缓存目录,即 cacheDir 设置的值。 |
:project |
string |
当前 Hugo 项目的基础目录名。这可以确保每个项目有独立的文件缓存,避免 hugo build --gc 命令影响同一台机器上的其他项目。 |
:resourceDir |
string |
用于缓存资源管道产物的指定目录,即 resourceDir 设置的值。 |
例如 dir = ':cacheDir/:project' 表示把缓存放在 cacheDir 之下、以项目目录名命名的子目录中;dir = ':resourceDir/_gen' 表示放在项目资源目录的 _gen 子目录中。
垃圾回收
随着你修改站点或更改配置,先前构建留下的缓存文件可能继续占用磁盘空间。使用 hugo build --gc 命令可以从文件缓存中删除这些已过期或不再使用的条目。