正在提供的Express - 静态文件无法找到

时间:2017-11-10 02:45:35

标签: javascript node.js express

我正在尝试使用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,具体取决于我所处的路线。

我错过了什么?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

这对我有用 -

app.use(express.static('public'));