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

发布于 2022-09-06 11:30:04 字数 885 浏览 21 评论 0

业务背景

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

问题
两个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里面的引用路径要用绝对路径才行,至于为什么要这样,不懂.....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮年慕年 2022-09-13 11:30:04

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

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

改成前面加/

<link href="/css/ex.css">
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文