小编Gle*_*and的帖子

快速静态服务错误的路径

我正在使用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服务?

static node.js express

3
推荐指数
1
解决办法
929
查看次数

标签 统计

express ×1

node.js ×1

static ×1