如何使用express.js提供静态文件

时间:2018-04-11 14:51:02

标签: node.js express

我正在尝试使用express.js提供静态文件。

const express = require('express')
const app = express()
app.use(express.static('public'))
app.listen(8888, () => console.log('listening on port 8888!')) 

但我收到错误:拒绝应用“http://localhost:8888/static/css/main.5a7f7b3b.css”中的样式,因为其MIME类型(“text / html”)不是受支持的样式表MIME类型,并且启用了严格的MIME检查。知道我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

我可能迟到了,但我只是找到了答案,在其他任何地方都找不到,所以我将其发布:

您的代码存在的问题是,它将正确地为index.html提供服务,但是当它加载链接在.html文件中的.css文件时,应用程序将通过再次发送.html文件进行响应。您的浏览器期望获得一个.css文件,但实际上得到一个.html文件,这会导致错误。

这将解决该问题:

const express = require('express')
const path = require('path');
const app = express()
app.use(express.static('public'))
app.get("*", (req, res) => {
    res.sendFile(path.join(__dirname, "./path/To/Your/Dir"));
}); 
app.listen(8888, () => console.log('listening on port 8888!'))