Express / Node问题与Jade模板中静态文件的路由路径有关

时间:2014-02-06 20:26:49

标签: node.js express pug

我有一个带有Jade模板的Node / Express应用程序,可以导入一些静态文件。我的玉模板的显着部分如下所示:

layout.jade:

head
  link(rel="stylesheet" href="/css/main.css)
  script(src="/vendor/jquery.js")

block body
  h1 Hello world.

mypage.jade:

extend layout

block body append
  p Here another line.

在快递中,我正在传达我的观点:

app.get('/', function(req,res) {
    res.render('index')
}

app.get('/mypage/', function(req,res) {
    res.render('mypage')
}

html for mypage.html现在有我的css和javascript路径:

/mypage/css/main.css
/mypage/vendor/jquery.js

如何让express / Jade正确导入标题中的静态文件,即。没有为路径添加路径前缀?

1 个答案:

答案 0 :(得分:4)

如果你没有改变任何东西,我相信你还有

app.use(express.static(path.join(__dirname, 'public')));

所以如果你保存像

这样的文件
/public/css/main.css

它按预期工作

或者如果你想使用/mypage/css/,请在

中保存css或mypage的任何其他静态文件
/public/mypage/css/main.css

并将其命名为

link(href="/maypage/css/style.css", rel="stylesheet")

静态文件的根始终是“公开的”所以你需要它的路径,例如/mypage/css/,即使它是/mypage/

的玉模板