我正在Jekyll(3.0.0测试版)开发我的博客,目前在localhost上,
当我尝试实现非常永久链接时,我尝试访问帖子时显示WEBrick错误。
如果我应用/:year/:month/:day/:title.html它运作正常你有一个线索,为什么它不适用于漂亮的永久链接?
这是我得到的错误:
<?php get_post_type( $post ) ?>
<?php if ( $post->post_name === 'belden-village' ) : ?>
<?php echo "<p>*For all groups of 8 or more, an 18% gratuity will be included on your guest check. Thank You</p>"; ?>
<?php endif ?>
答案 0 :(得分:1)
将Jekyll固定链接设置为pretty
中的_config.yml
,如下所示:
permalink : pretty
... 并重新启动您的WEBrick服务器(使用jekyll serve
重新启动服务器实例,或者需要bundle exec jekyll serve
[如果遵循GitHub]以获取新值效果,您的永久链接将不再采用YYYY/MM/DD/title-slug.html
格式,因为它们现在“非常”。链接的新格式为/:categories/:year/:month/:day/:title/
。这符合美丽所确定的格式变量定义为here in the documentation。
这对您意味着什么,因为“Per permas working”帖子的原始链接不再是localhost:4000/2015/08/03/are-permas-working.html
,而是现在它们位于localhost:4000/2015/08/03/are-permas-working/
,因为您没有定义category
。
您遇到此错误,因为在您完成更改并重新启动服务器后,您很可能没有导航到主页上的帖子(这将是有这个指向帖子的新链接),而只是你刷新浏览器上的页面,因为页面不再存在,所以会抛出404
。
奖金,Jekyll通过创建文件夹2015 - &gt;使帖子变得漂亮08 - &gt; 03,然后是该特定帖子的文件夹,里面有index.html
。
此外,如果您想要那些没有日期的“漂亮”链接,您需要使用以下方法手动指定:
permalink: "/:categories/:title"
此确保将隐藏.html
扩展名并删除日期值。
编辑:从我发表的评论中说,永久链接使用/:title
可能不起作用,因为与非帖子页面存在冲突,我有所纠正。如果您想要user.github.io/title-of-blog-post/
这样的简短固定链接,您只需设置permalink : /:title
就可以了。 但是,如果您有非about
页面,credits
页面的非帖子页面,则应明确在这些页面上设置永久链接在YAML前端获得/about
和/credits
,以避免出现标题为about
并且意外覆盖非帖子页面的博文的边缘情况。