我希望能够将我网站的链接定义为相对路径。我认为如果稍后移动网站会更加可靠。
目前,我的链接是绝对的,所以我有:
<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
变量的正确路径。我想自动化这个过程。
答案 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”目录位于我的站点的根目录中。