如何从任何(子)文件夹调用css资产的相对URL自动前缀?

时间:2014-02-27 11:30:41

标签: jekyll

我希望能够将我网站的链接定义为相对路径。我认为如果稍后移动网站会更加可靠。

目前,我的链接是绝对的,所以我有: <link rel="stylesheet" href="{{ site.url }}/assets/css/app.css" /> _includes/header.html调用_layouts/page.html生成我网站的页面。

第一种方法是放 <link rel="stylesheet" href="assets/css/app.css" /> 但它只适用于根目录中的页面。

另一种尝试是放 <link rel="stylesheet" href="../assets/css/app.css" /> 但它仅适用于根目录下的子页面。

事实上,我们需要根据需要使用尽可能多的../来返回根目录。是否可以自动计算它(可能基于page.url变量?我不知道该怎么做,也不知道在哪里放这样的脚本。

我知道kikito here的答案,但需要在创建元数据时手动声明元数据页面的root变量的正确路径。我想自动化这个过程。

1 个答案:

答案 0 :(得分:2)

您遇到的问题the accepted answer是否存在问题?该解决方案适合我。

在我的布局文件的头部,我包含代码:

{% capture lvl %}{{ page.url | append:'index.html' | split:'/' | size }}{% endcapture %}
{% capture relative %}{% for i in (3..lvl) %}../{% endfor %}{% endcapture %}

然后我的资源可以设置为:

<link rel="stylesheet" href="{{ relative }}assets/css/combined.min.css">

这会导致添加正确数量的../个零件。此示例中的“assets”目录位于我的站点的根目录中。