HarpJS:嵌套文件夹中的布局资产路径

时间:2015-07-28 13:27:17

标签: relative-path harp

在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.ejspage-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。 有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

这可以通过引用/styles/main.css的绝对路径来解决。

<!-- In _layout.ejs -->
<link href="/styles/main.css" rel="stylesheet">

然后,无论呈现哪个子页面,它都将始终引用/styles/main.css而不是/folder-level-1/styles/main.css