我正在使用express.js并且已经构建了一些基本功能但是如果URL比root中的一个目录长,那么从错误的地方发出快速静态服务的问题.请参阅以下示例.
我使用正常的文档方法来使用静态.
app.use(express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)
并设置了几条路线.例如.
app.get('/signup', function(req, res) {
res.render('signup.ejs');
});
Run Code Online (Sandbox Code Playgroud)
在链的末端有一个404捕获.
app.get('*', function(req, res){
res.status(404).render('404');
});
Run Code Online (Sandbox Code Playgroud)
如果我打的网页,例如localhost:3000或者localhost:3000/login其定义路线,一切都很好.即使我点击未定义的路线localhost:3000/foo,我也会在所有图像存在的情况下正确渲染404.
但是,如果我继续前进并做一些像localhost:3000/login/foo所有图像都丢失的事情,我将在浏览器控制台中收到以下地址的错误.
http://localhost:3000/login/img/site-brand.png
在使用多个目录定义的路由上也会发生相同的情况.
我在快递网站上解释了文档,无论调用静态图像是什么,它都将从root中的公共目录提供,其中包含js,img和css目录.
我的问题是,我误解了什么?以及我如何表达总是相对于root服务?