【问题标题】:Jekyll extension-less permalinks with markdown带有降价的 Jekyll 无扩展永久链接
【发布时间】:2016-04-25 02:20:47
【问题描述】:

来自 Jekyll docs 它说(使用 .md 格式):

也可以使用permalink front matter 变量来实现干净的 URL。在上面的示例中,使用第一种方法,您可以通过在文件顶部设置以下内容来获取文件 other.md 的 URL http://example.com/otherpermalink: /other

这是我的页面前端问题的示例:

---
layout: page
title: Contact
permalink: /contact
---

当我使用jekyll serve 时一切正常,但是当我使用build 并上传到我的静态主机时它不起作用。 Jekyll 输出的文件结构对于它从文档中声明的功能没有意义。

.
|-- css/
|-- index.html    # => http://example.com/
└── contact.md    # => http://example.com/contact.html

我希望能够转到http://example.com/contact 并让它显示contact.md。我知道我可以通过手动将我的文件放入文件夹中(然后将它们全部重命名为index.html)来获得类似的功能,就像它在文档here 中所说的那样,但我不想经历额外的步骤和我不喜欢尾随/ 例如http://example.com/other/.

我正在使用Jekyll 3.0.1


我发现了这些问题,但它们并没有解决我面临的问题。

How to link to a page with page.url without the html extension in Jekyll?

How to make all posts have a permalink with custom format "domain.com/blog/title"?

Can Jekyll omit index.html from folder URLs?

【问题讨论】:

  • 你试过这个解决方案了吗?在_config.yml 中有permalinks: /:title,看起来与我之前的答案类似:stackoverflow.com/questions/31791004/… 如果它有效,我会发布一个答案:) 我的网站设置类似于你想要的,其中一个文件夹@ 987654344@ 将在文件夹中创建,里面是一个index.html

标签: jekyll


【解决方案1】:

我认为您做得正确,只需正确配置您的网络服务器(假设它支持删除扩展程序)。它在本地正常工作,因为内置的 jekyll 网络服务器默认可以做到这一点。文档在此处提供了相关信息:

http://jekyllrb.com/docs/permalinks/#extensionless-permalinks

在 AWS S3 上,它说您可以通过上传根本没有扩展名的文件,然后将内容类型设置为 text/html 来使用无扩展名 url 托管。我认为不可能让 jekyll 输出 contact.html 就像 contact 没有扩展名。所以你让网络服务器删除扩展,如果它支持的话(在 s3 我使用尾随 /)。

这也有一些有趣的信息: https://github.com/jekyll/jekyll/issues/3345

【讨论】:

  • 是的,您对网络服务器配置是正确的。我猜这里有文档,那里有文档... :) Github 上的帖子也不错。
【解决方案2】:

我还在我的 jekyll 博客中使用干净的永久链接。

这是我的主要内容:

---
layout: directory
title: About
permalink: about/
---

有什么不同吗? , 它是 URL 末尾的斜杠。我知道,您不希望在 URL 的末尾看到任何斜杠,但为此您需要 use nginx因为 Jekyll 会生成像 /folder/index.html 这样的所有帖子/页面。强>

【讨论】:

  • 感谢有关 nginx 的文章的链接,非常有见地。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-01
  • 2011-01-10
  • 2013-03-21
  • 2016-05-31
相关资源
最近更新 更多