如何在Jekyll中添加RESTful类型的路由

Pra*_*jan 7 rest routes jekyll

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

pst*_*ler 11

这个功能实际上在Jekyll中可用.只需将以下行添加到_config.yml:

permalink: pretty
Run Code Online (Sandbox Code Playgroud)

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

  • /about/ 代替 /about.html
  • /YYYY/MM/DD/my-first-post/ 代替 YYYY-MM-DD-my-first-post.html

但是,你失去了定制永久链接的能力......而且尾随斜线非常难看.

编辑:尾部斜线似乎是设计的


Ala*_*ith 2

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

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

Options +MultiViews
Run Code Online (Sandbox Code Playgroud)

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

http://example.com/foo
Run Code Online (Sandbox Code Playgroud)

它将提供该文件:

/foo.html
Run Code Online (Sandbox Code Playgroud)

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