2017-07-04 55 views
2

我正在建立一个相当基本的网页使用快递。但是,我的图像路径遇到了一些麻烦。快速加载图片相对于url

此代码正常工作。

app.use(express.static(path.join(__dirname, "/app/public/"))); 
app.get("/overview", function(req, res) {  
    res.render('some-file');  
}); 

里面的一些-file.ejs我有...

<img src="assets/images/picture.jpg"> 

但什么does not工作是当我有第二个URL路径。

app.get("/overview/specific", function(req, res) {  
    res.render('another-file');  
}); 

<img src="assets/images/picture.jpg"> 

在这个例子中,我试图加载完全相同的图像(在我的情况下,它的一面旗帜这就是每一个页面上重复使用)。这给我一个错误,没有找到图像。我从控制台错误中发现的是,图像正在从localhost加载:3000/overview/assets/images/picture.jpg 我不明白为什么express会从第一个路径加载图像(在这种情况下概述)。概述不应该在路上! 任何人都可以帮我调试这个问题吗?

在此先感谢

+0

也添加你的文件夹结构.. – gauravmehla

回答

3

尝试使用/assets/images/picture.jpg

在路径前添加/。无论你想picture.jpg只是通过这个绝对路径

/app/public/assets/images/picture.jpg

现在:然后,它会采取/app/public/为根,确保图像将在。

+0

啊完美。这解决了它。非常感谢! –

0

我们提供动态的使用一种ExpressJS favicon的重定向,它工作得很好。

首先,我们检索基于req.hostname快速查找内存中的站点对象,然后发送这样的响应:

res.redirect(site.favicon); 

的图标变量可能是我们的服务器上的静态资产,或资产在另一台服务器上。我们的前端代码只是调用/ api/resources/favicon,它会收到正确的链接。