在harpJS中,假设我有一个像这样的文件夹结构:
mysite/
- _layout.ejs
- index.ejs
+ styles/
- main.css
+ folder-level-1/
- page-level-1.ejs
+ folder-level-2/
- page-level-2.ejs
在_layout.ejs
我有一个CSS路径引用:
<!-- In _layout.ejs -->
<link href="styles/main.css" rel="stylesheet">
它在index.ejs
中工作正常,但路径在page-level-1.ejs
和page-level-2.ejs
中断,因为它不是相对的。
我当前的解决方案(我并不满意)是_layout.ejs
顶部的一个小脚本:
<!-- In _layout.ejs -->
<% var pathPrefix = "";
for (var i = 0; i < current.path.length; i++) {
pathPrefix += "../";
};
%>
然后我可以将CSS路径写为:
<!-- In _layout.ejs -->
<link href="<%- pathPrefix %>styles/main.css" rel="stylesheet">
我觉得这个解决方案有点hacky。 有更好的方法吗?
答案 0 :(得分:2)
这可以通过引用/styles/main.css的绝对路径来解决。
<!-- In _layout.ejs -->
<link href="/styles/main.css" rel="stylesheet">
然后,无论呈现哪个子页面,它都将始终引用/styles/main.css
而不是/folder-level-1/styles/main.css