相对于 url 快速加载图像

Express loading images relative to url

我正在使用 express 构建一个相当基本的网页。但是,我在使用图像路径时遇到了一些问题。

这段代码工作正常。

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">

但是当我有第二条 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 试图从第一个路径加载图像(在本例中为概述)。概述不应该在路径中! 谁能帮我调试这个问题?

提前致谢

我们使用 ExpressJS 重定向动态提供网站图标,效果很好。

首先,我们根据 req.hostname 通过快速查找从内存中检索站点对象,然后发送此响应:

res.redirect(site.favicon);

favicon 变量可以是我们服务器上的静态资产,也可以是另一台服务器上的资产。我们的前端代码只是调用 /api/resources/favicon,它将在 return.

中接收到正确的 link

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

在路径前添加/。然后它将以 /app/public/ 作为根并确保图像位于 :

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

现在无论你想去哪里picture.jpg只要传递这个绝对路径。