Jekyll:/folder 中的所有 HTML 文件,现在强制通过 /folder/page/ 呈现。如何改变?

Posted

技术标签:

【中文标题】Jekyll:/folder 中的所有 HTML 文件,现在强制通过 /folder/page/ 呈现。如何改变?【英文标题】:Jekyll: All HTML files in /folder, now forced rendering through /folder/page/. How to change? 【发布时间】:2015-01-31 08:07:32 【问题描述】:

所以我试着看这里:

http://jekyllrb.com/docs/permalinks/

这里:

Show pages under one folder in Jekyll?

但这似乎并不能解决我的问题。

所以情况如下:


最初,我将所有 Jekyll *.html 文件都放在运行 Jekyll 的 /root 文件夹中,这有点混乱,因为有超过 30 个 *.html 文件,但是当我这样做时:

jekyll build

jekyll serve

我会让网站传播到:http://0.0.0.0:4000/

我现在将所有 *.html 文件移动到名为 /html 的文件夹中(在项目根目录中)。运行时:

jekyll build

jekyll serve

我的网站不再呈现在:http://0.0.0.0:4000/

但它呈现在:http://0.0.0.0:4000/html/


我想删除 URL 的 /html 部分,但正如上面 2 个链接所示,之前没有与此相关的问题。

谁能建议我如何从我的网址中删除 /html 部分?

【问题讨论】:

【参考方案1】:

好的,最初您的文件夹结构看起来像这样,对吗?

/_layouts/default.html
/css/whatever.css
/index.html

现在回答你的问题:

您想将 HTML 文件 而不是别的移动到 html 子文件夹吗? 换句话说,你想这样做吗?

/_layouts/default.html
/css/whatever.css
/html/index.html

如果是,请阅读David Jaqcuel's answer。 如果没有,请继续阅读我的答案:-)


或者只是您不希望所有源文件都在您的根文件夹中混乱?

如果是,您可以将 所有内容 移动到 html 子文件夹中,如下所示:

/html/_layouts/default.html
/html/css/whatever.css
/html/index.html

然后你需要告诉 Jekyll html 文件夹是站点源文件的根文件夹。

为此,您需要将以下行添加到the config file (如果该文件尚不存在,则创建该文件)

source: html

重要提示:配置文件必须位于项目的根文件夹中,即使您将源文件移动到子文件夹中!

那么您所有的源文件都在html 子文件夹中,但生成的站点将如下所示:

/_layouts/default.html
/css/whatever.css
/index.html

换句话说,URL 仍然是http://0.0.0.0:4000/

如果想看例子,可以看the source code of my blog: 我在那里做的完全一样,只是包含源文件的文件夹称为src

【讨论】:

source 是我想要的。实际上是文档中列出的第一个配置。【参考方案2】:

默认情况下,对于/html 中的页面,Jekyll 会生成类似/html/page.html 之类的页面。

我认为您不能为文件夹添加固定链接front matter default,您必须为放入/html 的每个页面设置固定链接。

例如:对于html/page.hmtl,您必须设置:

---
permalink: page.html
---

这是没有插件的方式。否则,您可以使用 Generator plugin 来完成此操作,这会将您的所有页面放入 /html 并更改所有目标永久链接。

【讨论】:

以上是关于Jekyll:/folder 中的所有 HTML 文件,现在强制通过 /folder/page/ 呈现。如何改变?的主要内容,如果未能解决你的问题,请参考以下文章

html 将变量传递给Jekyll中的包含

html 通过Jekyll中的替换进行本地化日期

jekyll 中的区域设置特定日期

将 jekyll 帖子列表限制为某些类别

Jekyll:在另一个帖子中包含一个帖子

Github 页面上的图像显示错误 - 使用 Jekyll