【问题标题】:Link in jekyll menu lead to "404 page not found" errosjekyll 菜单中的链接导致“404 页面未找到”错误
【发布时间】:2018-10-09 03:17:43
【问题描述】:

我是使用 jekyll 的新手,我想我遗漏了一些东西,但我不知道是什么。 我构建了一个 jekyll 页面,我使用它来编译 捆绑执行 jekyll 构建 然后我将 _site 文件夹的内容上传到我的 webhoster (name.com) 的 public_html/ 文件夹。

所有菜单链接,导致 404 错误页面:html 文件中生成的菜单链接指向诸如“https://myurl.com/people”之类的内容,而实际文件称为“people.html”,这就是为什么我得到一个404. 在我看来,我需要 jekyll 生成包含“.html”文件扩展名的菜单链接,或者以某种方式让我的网络托管服务商在请求“people”时提供“people.html”。

克里斯

【问题讨论】:

  • 您的配置文件中的permalink 设置是什么?
  • 它是 permalink: /:categories/:title/,但即使将其更改为 permalink: /:categories/:title/.html 似乎也不会影响正在创建的输出。
  • 查看 .htaccess(如果您的站点使用 Apache)或类似的其他服务器软件。有许多在线站点可以告诉您如何使用 RewriteEngine、RewriteCond 和 RewriteRule 配置它以使没有 .html 的 url 链接到正确的文件。它使用一种简单的正则表达式搜索和替换。

标签: jekyll


【解决方案1】:

要更改所有文件的链接结构,请在配置文件中使用permalink(格式正确)。例如:

# _config.yml

# same as `permalink: none`
# note that its ':output_ext' instead of '.html'
permalink: /:categories/:title:output_ext

来源:Official Docs

【讨论】:

  • 感谢您的建议。我尝试了permalink: none 并在你写的时候添加了:output_ext,但我仍然得到没有html扩展名的链接。 <li class="masthead__menu-item"><a href="https://myurl.com/people" >People</a></li>.
  • 我可以获取到您的存储库的链接(更好)或查看您的模板是如何编写的..?
  • 我终于找到了解决方案。 _data/nagivation.yml 的链接为myurl.com/people 而不是myurl.com/people.html。更新后,_site/ 文件夹中生成的 html 文件现在包含正确的链接。
猜你喜欢
  • 1970-01-01
  • 2014-10-12
  • 2012-09-15
  • 1970-01-01
  • 2015-06-22
  • 2015-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多