Javascript Css未加载req.params或其他内容

Javascript Css未加载req.params或其他内容,javascript,css,express,Javascript,Css,Express,我对node、express等非常陌生。我制作了一个博客应用程序,我面临一个问题。我正在使用mongoose、node、express和ejs 当我打电话时 router.get('/posts', function(req, res){ Post.find({}, function(err, posts){ res.render('viewpost.ejs', { posts }); }); }); router.get('/posts/:posts_id

我对node、express等非常陌生。我制作了一个博客应用程序,我面临一个问题。我正在使用mongoose、node、express和ejs

当我打电话时

router.get('/posts', function(req, res){   Post.find({}, function(err, posts){
    res.render('viewpost.ejs', {
      posts
    });   }); });
router.get('/posts/:posts_id', function(req, res){
  Post.find({_id: req.params.posts_id}, function(err, posts){
      res.render('viewpost.ejs',{
         posts
    });
  });
});
一切都很好。我得到了我的帖子,css也在工作。问题是我什么时候打电话

router.get('/posts', function(req, res){   Post.find({}, function(err, posts){
    res.render('viewpost.ejs', {
      posts
    });   }); });
router.get('/posts/:posts_id', function(req, res){
  Post.find({_id: req.params.posts_id}, function(err, posts){
      res.render('viewpost.ejs',{
         posts
    });
  });
});
这篇文章似乎很有效,但我得到的是控制台

GET/posts/posts.css 304 1.854 ms ejs看起来没有使用css

服务器文件
Server.js

app.use(express.static('public'))
app.use(express.static(path.join(__dirname, 'public/css/')));
app.use(express.static(path.join(__dirname, 'public/img/')));

viewpost.ejs

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.css"/>
    <link rel="stylesheet" href="style.css">
    <script src="/bower_components/jquery/dist/jquery.js"></script>
  </head>
  <body class="cyc">
  <% include ./partials/navbar.ejs %>

<%= posts %>
</body>
</html>
app.use(express.static('public'))
app.use(express.static(path.join(uu dirname,'public/css/'));
app.use(express.static(path.join(uu dirname,'public/img/'));
viewpost.ejs
所以,当我使用不带req.params的路由时,一切似乎都正常 好啊当我用任何参数调用它时,我的css文件都不起作用

尝试从HTML页面所在的同一路径加载
style.css
。因此,对于
/posts
,它将尝试加载
/style.css
,对于
/posts/1
,它将尝试加载
/posts/style.css
。但是后者与您的
/posts/:posts\u id
端点相匹配,因此将使用
posts\u id=='style.css'
调用它,这是毫无意义的

解决方案很简单,就是将链接设置为绝对链接:

<link rel="stylesheet" href="/style.css">

我也面临同样的问题,但最终我解决了。 请执行以下操作: 在HTML或EJS文件中写入:


在head部分,它将同时适用于/post和/post:id

谢谢。很好用!赞成!。在路径的开头使用“/”(根)。