Jekyll 为`_collection/foo.md`生成的链接`/foo`不';t在本地工作(但在Github页面上工作)

Jekyll 为`_collection/foo.md`生成的链接`/foo`不';t在本地工作(但在Github页面上工作),jekyll,github-pages,Jekyll,Github Pages,我的Jekyll项目中有以下文件结构: ├── _articles │   ├── bar │   │   └── widget.md │   ├── bar.md │   └── phone.md └── foo.md 请看这里: \u articles是在\u config.yml中定义的集合: collections: articles: title: Articles output: true permalink: :path 在Github页面上,这是内

我的Jekyll项目中有以下文件结构:

├── _articles
│   ├── bar
│   │   └── widget.md
│   ├── bar.md
│   └── phone.md
└── foo.md
请看这里:

\u articles
是在
\u config.yml
中定义的集合:

collections:
  articles:
    title: Articles
    output: true
    permalink: :path
在Github页面上,这是内置于这些URI中的:

  • 请看这里:

    一切都很好,正如预期的那样


    但是当我
    bundle exec jekyll s
    本地处理这个项目时,它的工作方式就不同了。我得到了预期的URI:

  • 但问题是#2被重定向到
    127.0.0.1:4000/bar/
    ,并显示目录列表而不是实际页面

    查看
    \u站点
    这是生成的文件结构:

    ├── bar
    │   └── widget.html
    ├── bar.html
    ├── foo.html
    ├── index.html
    └── phone.html
    
    因此我可以在
    http://127.0.0.1:4000/bar.html

    我怎样才能解决这个问题


    1我的Gemfile是这样的,因此环境应该与Github页面相同:


    Jekyll 3.6.x的更新 委员会:

    修复与目录()冲突的服务文件()


    不幸的是,这些更改并没有真正解决问题,而是将其替换为一个不太严重的问题:现在链接,但路径仍然不同,它在末尾添加了
    /
    。不幸的是,作为一种回归。

    这些是我想到的第一个解决方案:

  • 停止使用“漂亮的URL”
  • 仅使用index.md文件(每个文件位于单独的文件夹中)
  • 防止文件夹和文件之间的命名冲突
  • 在bar文件夹中创建一个index.html文件,该文件重定向到bar.html(尽管这可能会创建重定向循环)
  • Jekyll 3.7.x的更新 Jekyll 3.7.0版本包括一个PR,可以解决此问题:

    谢谢,我会研究这些建议,它们似乎都是有效的解决办法。但是你知道为什么这与Github页面上的不同吗?如果你仍然感兴趣,请参阅关于我问题的更新。情况正在改善。