GitHub Pages 常见问题(一)- GitHub Pages添加categories和tages后访问报404 Not Found


问题现象

原有文章只配置了 layouttitle,发布后,可以按照 year/month/day/title 的链接格式访问,但增加配置 categoriestages 后,再次访问就提示 404 Not Found

原因解析

这是因为 Jekyll 有一个 permalink(永久链接)的生成策略,默认策略为:

permalink: /:categories/:year/:month/:day/:title:output_ext

categories 不存在时,会忽略,因此我们可以按照 year/month/day/title 的链接格式访问到。而设置了 categories 后,链接就不是这个了,需要在链接前加上我们填写的 categories 才行。

解决方法

虽然我们找到了新页面的URL,但这种情况会导致原先的URL失效。

如果有人之前收藏了这篇文章,现在就无法访问了,这是一个更大的问题。

针对这种情况,我们可以修改 permalink 的默认设置,比如只按year/month/day/title来生成链接。

可以在根目录的 _config.yml 文件中添加如下语句:

permalink: /:year/:month/:day/:title

这样设置,不论文章有没有 categories ,生成的URL都与之无关,可以保证URL不会发生变化。


 关注微信公众号

DevOps持续交付公众号ID:devopscd