我正在使用express建立一个相当基本的网页。但是,我的图像路径有问题。
此代码工作正常。
app.use(express.static(path.join(__dirname, "/app/public/")));
app.get("/overview", function(req, res) {
res.render('some-file');
});
在some-file.ejs里面我有......
<img src="assets/images/picture.jpg">
但是,当我有第二个网址时,它无效。
app.get("/overview/specific", function(req, res) {
res.render('another-file');
});
<img src="assets/images/picture.jpg">
在这个示例中,我试图加载完全相同的图像(在我的情况下,它是一个在每个页面上重复使用的横幅)。这给了我一个错误,找不到图像。我从控制台错误中注意到的是,图像是从localhost:3000 / overview / assets / images / picture.jpg加载的。 我不明白为什么快递试图从第一条路径加载图像(在这种情况下概述)。概述不应该在路径中! 任何人都可以帮我调试这个问题吗?
提前致谢
答案 0 :(得分:3)
尝试使用/assets/images/picture.jpg
。
在路径前添加/
。然后它将/app/public/
作为根,并确保图像位于:
/app/public/assets/images/picture.jpg
现在,无论您想要picture.jpg
,只需传递此绝对路径。
答案 1 :(得分:0)
我们使用ExpressJS重定向动态提供favicons,效果非常好。
首先,我们使用基于req.hostname的快速查找从内存中检索站点对象,然后发送此响应:
res.redirect(site.favicon);
favicon变量可以是我们服务器上的静态资产,也可以是其他服务器上的资产。我们的前端代码只调用/ api / resources / favicon,它会收到正确的链接。