常见问题
Hugo 的论坛是一个活跃的用户和开发者社区,他们回答问题、分享知识并提供示例。快速搜索超过 20,000 个主题通常会回答您的问题。在提出第一个问题之前,请务必阅读有关请求帮助的信息。
这些只是新用户最常问的一些问题。
错误消息表明某个功能不可用。为什么?
Hugo 有三个版本:标准版、扩展版和扩展/部署版。标准版提供核心功能,而扩展版和扩展/部署版提供高级功能。
功能 | 扩展版 | 扩展/部署版 |
---|---|---|
在处理图像时编码为 WebP 格式。您可以使用任何版本解码 WebP 图像。 | ✔️ | ✔️ |
使用嵌入的 LibSass 转译器将 Sass 转译为 CSS。您可以使用任何版本的 Dart Sass 转译器。 | ✔️ | ✔️ |
将您的站点直接部署到 Google Cloud Storage 存储桶、AWS S3 存储桶或 Azure 存储容器。请参阅详细信息。 | ❌ | ✔️ |
当您尝试使用您安装的版本中不可用的功能时,Hugo 会抛出此错误
this feature is not available in this edition of Hugo
要解决此问题,请根据上面的功能表安装不同的版本。有关详细信息,请参阅安装部分。
为什么在访问主页时看到“找不到页面”?
在 content/_index.md
文件中
draft
是否设置为true
?date
是否在未来?publishDate
是否在未来?expiryDate
是否在过去?
如果对以上任何问题的回答为是,请更改字段值,或使用以下命令行标志之一:--buildDrafts
、--buildFuture
或 --buildExpired
。
为什么未发布给定页面?
在 content/section/page.md
文件中,或在 content/section/page/index.md
文件中
draft
是否设置为true
?date
是否在未来?publishDate
是否在未来?expiryDate
是否在过去?
如果对以上任何问题的回答为是,请更改字段值,或使用以下命令行标志之一:--buildDrafts
、--buildFuture
或 --buildExpired
。
为什么我看不到任何页面的后代?
您可能有一个 index.md
文件而不是 _index.md
文件。请参阅详细信息。
index.md
文件和 _index.md
文件之间有什么区别?
具有 index.md
文件的目录是一个叶子包。具有 _index.md
文件的目录是一个分支包。请参阅详细信息。
为什么我的局部模板未按预期呈现?
您可能在调用局部模板时忽略了传递所需的上下文。例如
{{/* incorrect */}}
{{ partial "_internal/pagination.html" }}
{{/* correct */}}
{{ partial "_internal/pagination.html" . }}
在模板中,当给变量赋值时,:=
和 =
之间有什么区别?
使用 :=
初始化变量,并使用 =
给先前初始化的变量赋值。请参阅详细信息。
当我分页列表页面时,为什么页面集合没有按照指定的方式过滤?
您可能在同一个页面上多次调用了 Paginate
或 Paginator
方法。请参阅 详细信息。
为什么有两种方式调用短代码?
如果短代码模板,或者开始和结束短代码标签之间的内容包含 Markdown,请使用 {{% shortcode %}}
标记。否则,请使用
{{< shortcode >}}
标记。请参阅详细信息。
我可以使用环境变量来控制配置吗?
是的。请参阅详细信息。
为什么我看到每次构建的输出不一致?
最常见的原因是页面冲突(将两个页面发布到同一路径)和并发的影响。使用 --printPathWarnings
命令行标志来检查页面冲突,如果您怀疑存在并发问题,请在论坛上创建一个主题。
为什么 Hugo 的开发服务器没有检测到文件更改?
在其默认配置中,当满足以下条件时,Hugo 的文件监视器可能无法检测到文件更改:
- 在 Windows Linux 子系统 (WSL/WSL2) 中运行 Hugo,并且项目文件位于 Windows 分区上
- 在本地运行 Hugo,并且项目文件位于可移动驱动器上
- 在本地运行 Hugo,并且项目文件位于通过 NFS、SMB 或 CIFS 协议访问的存储服务器上
在这些情况下,不要监视本机文件系统事件,请使用 --poll
命令行标志。例如,要每 700 毫秒轮询一次项目文件,请使用 --poll 700ms
。
为什么我的页面 Scratch 或 Store 缺少一个值?
Page
对象上的 Scratch
和 Store
方法允许您在给定页面上创建一个 临时存储区来存储和操作数据。值通常在短代码、短代码调用的部分模板或 Markdown 渲染钩子中设置。在这三种情况下,临时存储区的值在 Hugo 渲染页面内容之前都是不确定的。
如果您需要从父模板访问临时存储区的值,并且父模板尚未渲染页面内容,您可以通过将返回值分配给一个 noop 变量来触发内容渲染。
{{ $noop := .Content }}
{{ .Store.Get "mykey" }}
您也可以使用其他方法触发内容渲染。请参阅下一个常见问题解答。
哪些页面方法会触发内容渲染?
Page
对象上的以下方法会触发内容渲染:Content
、ContentWithoutSummary
、FuzzyWordCount
、Len
、Plain
、PlainWords
、ReadingTime
、Summary
、Truncated
和 WordCount
。