【发布时间】:2022-01-23 17:31:28
【问题描述】:
我正在使用 Nodejs 开发一个 CRUD 应用程序,但在从我的项目目录渲染外部 css 和 bootstrap5 时遇到问题。当我尝试使用 post Id 传递 get 时,仅呈现 html 块。当我使用cdn时它可以工作。 . app.get('edit'){..} 有效,但是当 app.get('/edit/:id'){..} 不渲染样式时
// this one works, rendering html and styling
// admin fetch all posts
app.get('/admin', (req,res) => {
con.query(
'SELECT * FROM post',
(error, results) => {
res.render('./admin/adminland', {post: results, layout:'./layout/dashboard'});
}
);
}) ;
// It still loads the page but it deosnot render the css.
// edit post
app.get('/edit/:id', (req,res) => {
con.query(
'SELECT * FROM post WHERE postid = ?',
[req.params.id],
(error, results) => {
res.render('admin/post/editpost', {post: results[0], verified: req.session.loggedin});
}
);
}) ;
【问题讨论】:
-
你能检查你的浏览器开发工具并检查正在加载的样式表的誓言吗?由于您的路径具有不同的深度,我怀疑这可能是路径问题。
-
我假设您的 CSS 位于单独的文件中,并且您尝试通过它们自己的 URL 访问它们。因此,您需要某种方式告诉 Express 为它们提供服务,因为它默认不提供任何文件。你没有显示任何代码。我不知道这是否意味着您没有任何代码来提供您的 CSS 文件(通常使用
express.static())或者您有,但它无法正常工作并且需要修复。是哪一个? -
@Terry 我已经检查过了,路径没有问题。问题是当我导入本地样式表时,我不明白 app.get('/edit/:id', ..} 对呈现页面有何影响。
-
@jfriend00 我已经使用了 express.static() .. 它适用于其他页面。问题是当我在 editpost 页面上使用内联样式或从 CDN 时,它工作正常,但是当 edit/:id 传递时,样式不起作用。如果 :id 部分被删除,它会再次起作用。