【问题标题】:Github Pages switched to Jekyll 3 and my links got brokenGithub Pages 切换到 Jekyll 3,我的链接坏了
【发布时间】:2016-04-25 11:00:56
【问题描述】:

截至 2016 年 4 月的 GitHub 页面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 在您所在的位置,但您在亚洲并且服务器在美国,那么该帖子将被视为将来而不发布。在_config.yml 中设置timezone 没有帮助(错误?)。您必须像这样为日期添加偏移量:

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

在这些更改之后,提交推送不再产生错误。但是我遇到了另一个错误,我的所有链接都已损坏,并且所有旧的帖子 URL 都返回 404。

我该如何解决这个问题?

【问题讨论】:

    标签: jekyll github-pages


    【解决方案1】:

    结果是 Jekyll 3 帖子不再以斜杠结尾。

    之前我在_config.yaml中将帖子的URL设置为这样:

    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

    如果你想维护旧的URL,你可以在每个页面的'front matter'中添加永久链接:

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

    【讨论】:

    • 是的!有关使用 GitHub Pages 将 Jekyll 2 升级到 3 的参考,请阅读此article
    猜你喜欢
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 2022-12-07
    • 2021-12-31
    • 2015-11-29
    • 1970-01-01
    • 2013-12-16
    • 2023-01-24
    相关资源
    最近更新 更多