Node.js Express.js静态文件赢得';不能正确加载
我的应用程序工作正常,因为我正在将所有请求路由到“/:postName”以返回相应的html文件。但在我切换到使用“/posts/postName”格式的路由之后,由于不再显示css,html文件的链接就中断了 这是server.js中的一个片段Node.js Express.js静态文件赢得';不能正确加载,node.js,express,Node.js,Express,我的应用程序工作正常,因为我正在将所有请求路由到“/:postName”以返回相应的html文件。但在我切换到使用“/posts/postName”格式的路由之后,由于不再显示css,html文件的链接就中断了 这是server.js中的一个片段 app.use("/", express.static(__dirname + "/public")); addRoutesToPosts(Post); async function addRoutesToPo
app.use("/", express.static(__dirname + "/public"));
addRoutesToPosts(Post);
async function addRoutesToPosts(model) {
var result = await model.find().exec();
console.log(__dirname);
result.forEach((post) => {
app.get(`/posts${post.linkToPost}`, (req, res) => {
res.sendFile(__dirname + `/static pages/posts${post.linkToPost}.html`);
})
});
}
以一个html文档中的css链接标记为例
<link rel="stylesheet" href="assets/css/Contact-Form-Clean.css">
当我试图检查并跟踪浏览器呈现的html中的css链接时,我遇到了这个错误。显然,这里没有考虑静态文件的根,因为它应该在/public/assets/css/…处获取css文件,posts是html文件所在的目录
请让我知道,如果我错过或不完全理解这里的东西。谢谢
在调用css等静态内容时使用基本URL是一种解决方案。请阅读今天早些时候的文章,看看这是否适用于您的情况。谢谢您的回答。我可以通过添加
app.use(“/posts”,express.static(\uu dirname+“/public”))来解决这个问题代码>