Github Pages切换到Jekyll 3,我的链接被破坏

时间:2016-04-16 18:47:09

标签: jekyll github-pages

GitHub页面截至2016年4月uses Jekyll 3.0。每当我推送提交切换后,我都会收到Page build failed.电子邮件通知。

由于错误是如此缺乏信息,我不得不联系GitHub支持。事实证明,如果您在_config.yaml中使用exclude,则内容必须现在放在括号中,例如:

exclude: [excludethis]

此外,Redcarpet和Pygments不再可用,因此必须在_config.yaml中用kramdown和rouge替换它们:

markdown: kramdown
highlighter: rouge

现在默认情况下,未发布的未来帖子(将来有date的帖子)不会发布。因此,如果您的帖子中有date: 2016-04-25 09:30:00,现在是10:00,但您在亚洲且服务器位于美国,则此帖子将在未来考虑,不会发布。在timezone中设置_config.yml无济于事(错误?)。您必须像这样添加偏移量:

date: 2016-04-25 09:30:00 +0700

在这些更改之后,提交不再产生错误。但是我遇到了另一个错误,我的所有链接都被破坏了,帖子的所有旧网址都返回了404.

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

事实证明,Jekyll 3帖子不再以尾随斜线结尾。

之前我在_config.yaml

中将帖子的网址设置为这样
permalink: /article/:title

示例网址为:http://mysite/article/apost/

使用Jekyll 3无法找到此URL(404)。但是我可以用http://mysite/article/apost来获取它。

因此,如果您想维护旧网址,则需要修改固定链接以使用尾部斜杠:

permalink: /article/:title/

需要修改指向帖子的链接以删除尾部斜杠。例如,如果以前你有:

<a href="{{post.url}}/">

需要更改为:

<a href="{{post.url}}">

这解决了帖子的问题。非帖子页面有不同的问题。以前,如果您在root中有about.md,则Jekyll会将其转换为http://mysite/about.html。 Jekyll 3最后不会追加.html,它会成为http://mysite/about

如果您想维护旧网址,可以在每个页面的“前端内容”中添加永久链接:

---
permalink: /about.html
---