我在使用Express 4和静态文件时遇到了麻烦。成功登录后,我将我的网络应用程序重定向到' / home / userId'但是,我在所有静态文件上获得404。这是我的路由器:
router.get('/home/:userid', function(req, res, next) {
// TODO check if token is valid
User.findById(req.params.userid).exec(function(err, find) {
if (err) return next(err);
if (!find) {
return res.json(utils.createErrorJsonResponse(404, "User not found!"));
}
return res.render('home', {
title: 'Organizator',
user: find
});
})
});
我认为没有用到显示我的jade文件,唯一重要的是有很多导入的脚本,但只是举个例子,这就是我加载css文件的方式:
link(href='css/style.css', rel='stylesheet')
这就是我设置静态文件的方式
app.use(express.static(config.root + '/public',{ maxAge: 86400000 }));
在哪里' config.root'是我的:
path.normalize(__dirname + '/..')
如前所述,如果我连接到基本页面,那么在我的情况下:
http://localhost:3000
我的所有静态文件都已导入,但是一旦我重定向我就得到了404.那么我该怎么办呢?例如。我有一个名为' style.css'的样式文件。在控制台的基本页面(' http://localhost:3000)中,我可以看到:
Request URL:http://localhost:3000/css/style.css
Request Method:GET
Status Code:200 OK (from cache)
然后来自' http://localhost:3000/home/':
Request URL:http://localhost:3000/home/css/style.css
Request Method:GET
Status Code:404 Not Found
所以问题是' / home',但我怎样才能删除"它来自静态文件请求?谢谢。
答案 0 :(得分:3)
正如@Molda在评论中所解释的那样,请确保您的链接以/
开头,否则路径将相对于实际路线http://localhost:3000/home
。