relative-path - HarpJS : layout asset paths in nested folders

标签 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 中中断code>,因为它不是相对的。

我当前的解决方案(我对此不太满意)是 _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

关于relative-path - HarpJS : layout asset paths in nested folders,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31677729/

相关文章:

java - 什么代码能够读取program.jar应用程序文件中包含的图像;从任何地方?

ubuntu - 如何从 Docker 提供 Harp/nginx 页面?

javascript - 当使用 JavaScript 时,Jade 将 & 转换为 &

javascript - Jade 包括检查实际页面的条件

nginx - 在Nginx中使用别名作为相对URL时的禁止位置

javascript - 如何在 JavaScript 中加入相对 URL

javascript - 在 jade 条件下使用 bool 运算符

javascript - Harp js + 博客示例 : Is there a way to set default partial for articles?

html - 使用 ./in 相对链接是否适用于 Windows 服务器?

c# - Silverlight 中的 URI 相对资源