Javascript Css未加载req.params或其他内容
我对node、express等非常陌生。我制作了一个博客应用程序,我面临一个问题。我正在使用mongoose、node、express和ejs 当我打电话时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
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谢谢。很好用!赞成!。在路径的开头使用“/”(根)。