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

HarpJS: layout asset paths in nested folders

在 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">

I feel this solution to be a bit hacky. Is there a better way?

这可以通过引用 /styles/main.css.

的绝对路径来简单解决
<!-- In _layout.ejs -->
<link href="/styles/main.css" rel="stylesheet">

那么无论渲染哪个子页面,它总是引用 /styles/main.css 而不是 /folder-level-1/styles/main.css