Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Express.js静态文件赢得';不能正确加载_Node.js_Express - Fatal编程技术网

Node.js Express.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

我的应用程序工作正常,因为我正在将所有请求路由到“/:postName”以返回相应的html文件。但在我切换到使用“/posts/postName”格式的路由之后,由于不再显示css,html文件的链接就中断了

这是server.js中的一个片段

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”))来解决这个问题