express框架下引用静态css,js资源报错

1,210 阅读1分钟

报错内容:
Refused to apply style from 'http://ip:host/public/css/index.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
拒绝应用来自“http://ip:host/public/css/index.css”的样式,因为其MIME类型('text / html')不是受支持的样式表MIME类型,并且启用了严格的MIME检查。

报错原因大概就是找不到这个静态资源,是因为静态资源访问限制导致。
index.html中css引用路径如下,直观上感觉没啥问题,为啥会报错呢?

看了看报错原因,找不到这个文件?首先,我们来看看下app.js文件是否设了置静态文件目录:一般是在根目录/public里。
上面这行代码代表传递一个包含静态资源的目录给express.static中间件用于立即开始提供public目录下的图片、css文件和js文件。
express 会在静态资源目录下查找文件,所以不需要把静态目录public作为url的一部分。这时候当你直接在浏览器访问"http://ip:host/public/css/index.css"是可以获取public目录下的css文件的。
也就是说,我们在html引用public目录下静态文件的时候,并不需要把静态目录public作为url的一部分,也就是我们直接引用"/css/index.css"即可。

这时候浏览器就成功加载这两个文件啦~

注:如果客户端发送了一个带条件的GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码。简单的表达就是:服务端已经执行了GET,但文件未变化。