Jekyll/Liquid相对URL筛选器断开链接

Jekyll/Liquid相对URL筛选器断开链接,jekyll,liquid,Jekyll,Liquid,我正在尝试在我的Jekyll主题的大多数链接中使用相对url,所以如果有人想让这个主题在子目录中工作,他可以这样做。 我对文章的分类列表有一个问题,每个分类都应该链接到档案 在_layouts/post.html中,我有以下代码: {% if site.data.settings.categories.active %} {% include categories.html %} {% endif %} categories.html包含以下代码: <div class="categ

我正在尝试在我的Jekyll主题的大多数链接中使用相对url,所以如果有人想让这个主题在子目录中工作,他可以这样做。 我对文章的分类列表有一个问题,每个分类都应该链接到档案

在_layouts/post.html中,我有以下代码:

{% if site.data.settings.categories.active %}
  {% include categories.html %}
{% endif %}
categories.html包含以下代码:

<div class="categories">
    <span><p>Categories:</p>
    {% if post %}
      {% assign categories = post.categories %}
    {% else %}
      {% assign categories = page.categories %}
    {% endif %}
    {% for category in categories %}
      <a href="{{ "/categories/#{{category | slugify}}" | relative_url}}">{{category}}</a>
      {% unless forloop.last %}&nbsp;{% endunless %} 
    {% endfor %}
  </span>
</div>
问题是:

 <a href="{{ "/categories/#{{category | slugify}}" | relative_url}}">{{category}}</a>
不知何故,这会返回当前的帖子url

<a href="/categories/#{{category | slugify}}">{{category}}</a>
这将返回正确的链接,但在站点位于子目录中时不起作用


为什么它返回post url

这里有很多问题

首先,Liquid不计算嵌套构造。 因此,以下代码:

{{ "/categories/#{{category | slugify}}" | relative_url}}
需要改写为:

{% capture url %}/categories/{{ category | slugify }}{% endcapture %}
{{ url | relative_url }}
其次,没有全局post对象。因此{%if post%}的计算结果总是负值。i、 例如,它是多余的