首页 文章

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

提问于
浏览
0

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,但您在亚洲且服务器位于美国,则此帖子将在未来考虑,不会发布 . 在 _config.yml 中设置 timezone 无济于事(bug?) . 您必须添加偏移量到日期,如下所示:

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

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

我该如何解决?

1 回答

  • 0

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

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

    permalink: /article/:title
    

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

    使用Jekyll 3,无法找到此URL(404) . 但我可以用http://mysite/article/apost获得它 .

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

    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
    ---
    

相关问题