我正在尝试使用Express提供静态文件(CSS样式表),它位于某些路径上,例如主页/
或索引页/index
。但是,当我导航到/index/:id
页面时,我在Chrome控制台中收到此错误:
GET http://localhost:3000/index/stylesheets/styles.css net::ERR_ABORTED
我确定我收到此错误的原因是因为css文件实际上并未在错误中指定的位置提供。我确认其所服务的实际位置为http://localhost:3000/stylesheets/styles.css
。
我的服务器文件中有以下代码行:提供css文件app.use(express.static(__dirname + "/public"));
这是/index/:id
路线的代码:
app.get('/index/:id', function(req, res) {
Post.findById({_id: req.params.id}, function(err, foundPost){
if (err) {
console.log(err);
res.redirect('/');
}
else {
res.render('./index/show', {post: foundPost});
}
});
});
我确保将CSS添加到使用此确切行提供的每个html页面:
<link rel="stylesheet" href="stylesheets/styles.css" />
为什么包含/
或/index
等路由的CSS,但在导航到/index/:id
页面时却看错了?页面正在查找css文件的位置,从http://localhost:3000/stylesheets/styles.css
更改为http://localhost:3000/index/stylesheets/styles.css
,具体取决于我所处的路线。
我错过了什么?非常感谢任何帮助!
答案 0 :(得分:0)
这对我有用 -
app.use(express.static('public'));