jekyll 漂亮的永久链接给我 WEBrick 错误

jekyll pretty permalinks give me WEBrick error

我正在使用 Jekyll (3.0.0 beta) 开发我的博客,目前在本地主机上,

当我尝试实现漂亮的永久链接并尝试访问 post 时,它显示 WEBrick 错误。

如果我应用 /:year/:month/:day/:title.html 它工作正常你知道为什么它不能使用漂亮的永久链接吗?

这是我得到的错误:

/2015/08/03/are-permas-working.html' not found. WEBrick/1.3.1 (Ruby/2.1.6/2015-04-13) at localhost:4000

_config.yml 中将 Jekyll permalinks 设置为 pretty 后,如下所示:

permalink : pretty

... 并重新启动您的 WEBrick 服务器(使用 jekyll servebundle exec jekyll serve [如果遵循 GitHub 重新启动服务器实例] 是新值生效所必需的,您的 permalinks 将不再采用 YYYY/MM/DD/title-slug.html 的格式,因为它们现在是 "pretty"。您的 [=75] 的新格式=]s 将是 /:categories/:year/:month/:day/:title/。这与定义的 pretty 变量确定的格式一致 here in the documentation

这对您来说意味着什么 是您原来的 link 'Are permas working' post 不再位于 localhost:4000/2015/08/03/are-permas-working.html ,而是它们现在位于 localhost:4000/2015/08/03/are-permas-working/,因为您没有定义 category

您遇到此错误 因为在您进行更改并重新启动服务器后,您很可能没有导航到 post 从您的 主页(它将有新的 link 指向 post),而您只是在浏览器上刷新页面,这将抛出一个 404因为该页面不再存在。

Bonus,Jekyll 通过创建文件夹 2015 -> 08 -> 03,然后为特定 post 创建一个文件夹,使 post 变得漂亮里面有一个 index.html

另外, 如果你想要 "pretty-fied" link 那里没有日期,你需要手动指定使用这个:

permalink: "/:categories/:title"

此确保将隐藏 .html 扩展名并删除日期值。

EDIT:从评论中我说使用 /:title for permalinks 可能不起作用,因为与非 [=77 有冲突=] 页面,我已纠正。如果你想要像 user.github.io/title-of-blog-post/ 这样的短 permalinks 你只需要设置 permalink : /:title 就可以了。 但是,如果您有非post页面,例如about页面、credits页面,您应该明确 将这些页面上的 permalinks 设置为 /about/credits YAML frontmatter 以避免出现博客 post 的边缘情况about 并且不小心覆盖了非 post 页面。