HUGO
Menu
GitHub 87548 stars Mastodon

常见问题

这些问题是新手用户经常询问的。

Hugo 的 论坛 是一个活跃的用户和开发者社区,他们回答问题、分享知识并提供示例。快速搜索超过 20,000 个主题通常就能回答你的问题。在提出第一个问题之前,请务必阅读有关 请求帮助 的说明。

以下是新手用户最常询问的几个问题。

错误消息表明某个功能不可用。为什么? :

版本

Hugo 提供具有核心功能的标准版,以及具有更多功能的扩展版和扩展/部署版。除非您需要以下功能,否则请使用标准版。

功能 扩展版 扩展/部署版
通过嵌入式 LibSass 将 Sass 转译为 CSS。请注意,嵌入式 LibSass 已在 v0.153.0 中弃用,并将在未来版本中删除。请改用 Dart Sass 转译器,它与任何版本兼容。 ✔️ ✔️
直接将您的站点部署到 Google Cloud Storage 存储桶、AWS S3 存储桶或 Azure Storage 容器。请参阅 详情 ✔️

当你尝试使用所安装版本中不可用的功能时,Hugo 会抛出此错误:

this feature is not available in this edition of Hugo

要解决此问题,请根据上面的功能表安装不同的版本。有关详细信息,请参阅 安装 部分。

为什么访问主页时会看到"Page Not Found"? :在 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 文件的目录是 分支式内容包。请参阅 详细信息

为什么我的 partial 模板没有按预期渲染? :调用 partial 时,你可能忘记传递所需的 上下文。例如:

{{/* 不正确 */}}
{{ partial "pagination.html" }}

{{/* 正确 */}}
{{ partial "pagination.html" . }}

在模板中,为变量赋值时 :== 之间有什么区别? :使用 := 初始化变量,使用 = 为已初始化的变量赋值。请参阅 详细信息

当我对列表页面进行分页时,为什么页面集合未按指定过滤? :你可能在同一页面上多次调用 PaginatePaginator 方法。请参阅 详细信息

为什么有两种调用 shortcode 的方式? :如果 shortcode 模板或开始和结束 shortcode 标签之间的内容包含 Markdown,请使用 {{% shortcode %}} 表示法。否则使用 {{< shortcode >}} 表示法。请参阅 详细信息

我可以使用环境变量来控制配置吗? :可以。请参阅 详细信息

为什么我看到从一个构建到下一个构建的输出不一致? :最常见的原因是页面冲突(将两个页面发布到同一路径)和并发的影响。使用 --printPathWarnings 命令行标志检查页面冲突,如果你怀疑存在并发问题,请在 论坛 上创建主题。

为什么 Hugo 的开发服务器没有检测到文件更改? :在默认配置中,Hugo 的文件监视器可能无法检测到文件更改,当:

  • 在 Windows Subsystem for Linux(WSL/WSL2)中运行 Hugo,且项目文件位于 Windows 分区上
  • 在本地运行 Hugo,且项目文件位于可移动驱动器上
  • 在本地运行 Hugo,且项目文件位于通过 NFS、SMB 或 CIFS 协议访问的存储服务器上

在这些情况下,使用 --poll 命令行标志而不是监视原生文件系统事件。例如,要每 700 毫秒轮询一次项目文件,请使用 --poll 700ms

为什么我的页面 Store 缺少值? :Page 对象上的 Store 方法允许你在给定页面上创建 临时存储区 来存储和操作数据。值通常在 shortcode 模板、由 shortcode 模板调用的 partial 模板或 render hook 模板中设置。在这三种情况下,在 Hugo 渲染页面内容之前,临时存储区的值是不确定的。

如果你需要从父模板访问临时存储区值,而父模板尚未渲染页面内容,你可以通过将返回值分配给 空操作 变量来触发内容渲染:

{{ $noop := .Content }}
{{ .Store.Get "mykey" }}

你也可以使用其他方法触发内容渲染。请参阅下一个常见问题解答。

哪些页面方法会触发内容渲染? :Page 对象上的以下方法会触发内容渲染:ContentContentWithoutSummaryFuzzyWordCountLenPlainPlainWordsReadingTimeSummaryTruncatedWordCount

对于其他问题,请访问 论坛。快速搜索超过 20,000 个主题通常就能回答你的问题。在提出第一个问题之前,请务必阅读有关 请求帮助 的说明。


Last updated: January 1, 0001
Improve this page