15

我使用 GitHub Pages 并在子文件夹中创建了一些页面。它似乎没有生成我在子文件夹中创建的页面。所有其他页面工作正常。目录结构是这样的:

/
/index.html
/_config.yaml
/_includes
/_layouts
/_posts
/tag
/tag/personal.html
/tag/videos.html

目录内的页面/tag不是由 Jekyll 生成的。此外,如果 Jekyll 构建失败,通常 GitHub 会发送一封电子邮件,但在这种情况下没有。此外,如果我进行任何其他更改,它会起作用,因此构建显然没有失败。

/tag/personal.html这里:

---
layout: default
title: Tag-personal
permalink: /tag/personal/index.html
tagspec: personal
---
<div id="tagpage">
  <h1>Posts tagged personal</h1>
{% include tags.html %}
</div>

在这里/_includes/tags.html

{% for tag in post.tags %}
  {% if tag == page.tagspec %}
    {% assign ispostviable = true %}
  {% endif %}
{% endfor %}

  <ul class="posts">
{% for post in site.posts %}
  {% if ispostviable == true %}
    <li><a href="{{ post.url }}"></li>
  {% endif %}
{% endfor %}
  </ul>

PS:我使用 GitHub Pages 并且无法访问我的开发机器(Windows)上的 Jekyll 实例。

4

2 回答 2

14

Joshua Powell在回答 Github 上的类似问题时提供了分步说明。

  1. 编辑_config.yml以添加以下行(或展开数组,如果存在)

    include: ['_pages']

    where_pages是您希望保存文件的文件夹的名称。(如果您明确添加嵌套文件夹,这也适用于嵌套文件夹,例如['_pages', '_pages/foo'].)

  2. 将您的页面移动到该文件夹​​中。(这些页面可能是 HTML、Markdown 或 Jekyll 放置在根文件夹中时呈现的任何其他内容。)

  3. 用适当的永久链接给他们前面的内容,包括尾部斜杠,例如,permalink: "/about/"

于 2015-01-27T01:03:18.590 回答
13

I found the culprit. It was that In Jekyll v1.0, absolute permalinks for pages in subdirectories were introduced. Until v1.1, it is opt-in. Starting with v1.1, however, absolute permalinks became opt-out, meaning Jekyll defaults to using absolute permalinks instead of relative permalinks.

The pages were being generated at /tag/tag/personal.html and so on.

There were two solutions:

  • Specify relative_permalinks: false in _config.yaml
  • Make permalinks relative to the subdirectory.

I chose the first option.

于 2013-08-25T11:37:59.840 回答