2

在 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。有没有更好的办法?

4

1 回答 1

3

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

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

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

于 2015-07-30T13:28:02.600 回答