Ivan's Blog

Hugo 文章时区问题导致无法显示

今天发现了一个很奇怪的问题:Hugo 新创建的文章,始终无法看到,也就是无法生成,程序没有正确识别到文章。

但是使用 hugo new 命令创建出的文件确可以正确识别到。

我猜测可能是文章头部出了问题。

挨个文章看,比较每一篇文章的 frontmatter 部分,发现没有任何问题。而在 frontmatter 部分的 date 段,我设置的是像 2024-04-18 17:27:21 这样的时间。

我给时间加上时区:2024-04-18 17:27:21+08:00,文章恢复正常,可以被加载到了。我又试试将时间往前调整 6 个小时,不行,往前调 8 个小时,可以了。

然后我又把文章加上时区,但是时间设置到第二天,也就是未来:发现又不行了,文章又消失了。

这下基本上可以确定:是时区的问题。

我试着总结一下原因:

Hugo 在生成文章的时候,会略过未来的文章,因为我们所在是东8区,所以文章的时间如果不加上时区,会被默认为是在 0:00 时区。而这个时区相对于我们来说是欧洲,太阳还需要 8 个小时才能抵达,所以会被算作是未来时间。

因此对于未来时间的文章,hugo 就不予生成了。解决方法也很简单,把时间部分加上时区即可,如果不想加时区,也可以在构建文章的时候,添加构建未来文章的参数 hugo --buildFuture。如果不想每次都加这个参数,也可以直接在配置文件中添加以下配置:

# config.toml
buildfuture = true

PREV 使用 Bun 快速启动一个 Vue + Vite 项目
NEXT Hugo 设置外部链接用新窗口打开