我的Jekyll项目中有以下文件结构:
├── _articles
│ ├── bar
│ │ └── widget.md
│ ├── bar.md
│ └── phone.md
└── foo.md
见这里:https://github.com/janpio/jekyll-test
_articles
是_config.yml
中定义的集合:
collections:
articles:
title: Articles
output: true
permalink: :path
在Github Pages上,这些内置于这些URI中:
见这里:https://janpio.github.io/jekyll-test/
这一切都很好并且符合预期。
但当我bundle exec jekyll s
本地项目 1 时,它的工作方式不同。我得到了预期的URI:
但问题是#2被重定向到127.0.0.1:4000/bar/
并显示目录列表而不是实际页面!
查看_site
这是生成的文件结构:
├── bar
│ └── widget.html
├── bar.html
├── foo.html
├── index.html
└── phone.html
因此,我可以bar.md
访问http://127.0.0.1:4000/bar.html
。
我该如何解决这个问题?
1 My Gemfile的环境应与Github Pages相同:https://github.com/janpio/jekyll-test/blob/master/Gemfile
3.6.0 Jekyll release changed this behaviour:
冲突的服务文件
不幸的是,这些更改并没有真正解决问题,而是将其替换为不太严重的问题:现在链接doesn't show the directory listing any more but the correct page,但路径仍然不同,因为它会在/
处添加{{1}}结束。不幸的是作为回归bar/widget
doesn't render the correct content any more but shows bar.md
。
答案 0 :(得分:1)
这些是我想到的第一个解决方案:
答案 1 :(得分:0)
3.7.0 Jekyll发布包含一个PR应该解决这个问题: return correct file in dir if dir has same name as file