【问题标题】:Set a global permalink in Jekyll without the path?在 Jekyll 中设置一个没有路径的全局永久链接?
【发布时间】:2020-10-11 18:14:46
【问题描述】:

我希望我的 Jekyll 网站上的所有帖子和页面都具有相同的链接结构:example.com/my-title,无论我用于存储文件的目录结构如何。

查看documentation 似乎我应该能够通过将以下行放入我的_config.yml 来实现这一点: permalink: /:title.

这几乎可行。所有帖子(在_posts/ 目录中)都会获得正确的 URL。我网站主目录中的所有页面也都获得了正确的 url。但是,子目录中的页面仍然具有以 url 为前缀的目录路径。例如,如果我有一个页面 pages/cats/my-cat.md,则 URL 是 example.com/pages/cats/my-cat,而不是我想要的 (example.com/my-cat)。如果我直接在前面将该页面的永久链接设置为/my-cat,我会得到想要的结果,但我不想在每个页面上都这样做。

是否可以从所有页面 URL 中删除路径?

我看到了许多其他关于 Jekyll 永久链接的问题,但没有一个能准确解决这个问题。 This answer 从 2013 年开始表示,页面将“始终保持相对路径”,但这已经相当老了,而且似乎是一次性断言,而不是有证据支持的声明。

【问题讨论】:

    标签: jekyll


    【解决方案1】:

    您可以使用 Jekyll 默认值根据类型和/或路径为文件应用后备前端。它与在每个文件中设置 front matter 的效果相同。以下是如何将该永久链接应用到所有页面:

    _config.yml:

    defaults:
      - scope:
          path: ''
          type: pages
        values:
          permalink: /:title
    

    这也是设置其他常用字段的好方法,例如layout.

    官方文档了解更多详情:https://jekyllrb.com/docs/configuration/front-matter-defaults/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-22
      • 1970-01-01
      • 2020-09-15
      • 2019-07-27
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 2010-12-13
      相关资源
      最近更新 更多