node.js中express的render的视图名和路由名不一致的问题[已解决]

业务背景

一个表的添加和删除
共用同一个视图

问题
两个get路由,分别截获不同的url
但是返回相同的视图

但是如果url名和视图名不同的话
视图中静态文件的引用地址会自动加一个前缀,这个前缀是url路径.这样就无法访问这个静态文件了.这是为什么?
要怎样才能让两个不同的路由,共用同一个视图文件呢?

由于赶工作,暂时没时间看文档,搜索了一下没答案,就先提个问题,麻烦大家啦.

代码

文档结构
/public/css/ex.css
/views/ex.handebars
index.js
ex.handebars
<link href="css/ex.css">
index.js
app.get('/ex',function(req,res){
    res.render('ex');
})
app.get('/ex22/add',function(req,res){
    res.render('ex');
    //能够正常输出html文档
    //但是link的路径变成了 ex22/ex.css
})
已解决:在这种匹配/xx/xx多级路径的情况下,.handlebars里面的引用路径要用绝对路径才行,至于为什么要这样,不懂.....
阅读 2.6k
1 个回答

.handlebars文件里面的静态资源引用地址,不要使用相对地址,使用绝对地址就解决了.
至于为什么这样,还没搞懂

<link href="css/ex.css">

改成前面加/

<link href="/css/ex.css">
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题