【问题标题】:How to add RESTful type routes in Jekyll如何在 Jekyll 中添加 RESTful 类型的路由
【发布时间】:2011-10-26 18:23:30
【问题描述】:

网站的根目录 http://example.com 正确识别 index.html 并呈现它。以类似的方式,我希望 http://example.com/foo 获取目录根目录中的 foo.html。使用此功能的站点是www.zachholman.com。我在 Github 上看过他的代码。但我仍然无法找到它是如何完成的。请帮忙。

【问题讨论】:

  • 第二个 URL 示例后有一个下划线。我假设基于您列出的示例站点,而不是“example.com/foo_”,您想要“example.com/foo”。对吗?

标签: rest routes jekyll


【解决方案1】:

此功能实际上在 Jekyll 中可用。只需将以下行添加到您的 _config.yml:

permalink: pretty

这将启用指向没有 .html 扩展名的帖子和页面的链接,例如

  • /about/ 而不是 /about.html
  • /YYYY/MM/DD/my-first-post/ 而不是 YYYY-MM-DD-my-first-post.html

但是,您将失去自定义永久链接的能力...而且尾部的斜线非常难看。

编辑:design 似乎存在尾部斜杠

【讨论】:

    【解决方案2】:

    实际上需要调整的是服务器,而不是 jekyll。默认情况下,jekyll 将生成带有 .html 扩展名的文件。可能有办法解决这个问题,但你不太可能真的想走那条路。相反,您需要让您的网络服务器知道您希望在使用文件的基本名称(并且没有扩展名)调用 URL 时提供这些文件。

    如果您的网站通过 Apache Web 服务器提供服务,您可以启用“MultiViews”选项。在大多数情况下,您可以使用以下行在站点根目录创建 .htaccess 文件:

    Options +MultiViews
    

    启用此选项后,当 Apache 收到以下请求时:

    http://example.com/foo
    

    它将提供文件:

    /foo.html
    

    请注意,必须设置 Apache 服务器以允许在 htaccess 文件中设置该选项。如果没有,您需要在 Apache 配置文件本身中执行此操作。如果您的网站托管在另一台网络服务器上,您需要寻找等效设置。

    【讨论】:

    • 谢谢艾伦,这很有效!我用提到的行创建了一个 .htaccess 。我应该了解更多关于重写规则的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 2021-12-21
    • 2019-03-18
    • 2018-09-06
    • 1970-01-01
    • 2014-09-08
    • 2016-05-16
    相关资源
    最近更新 更多