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/ 呈现。如何改变?的主要内容,如果未能解决你的问题,请参考以下文章