问题描述:
启动前端后,发现前端的页面渲染不符合预期,看情况应该是css文件没有生效。
排查步骤:
- 查看有无报错信息。
查看后台输出,没有可用的提示信息,如图:
- 确认 css 的路径没错。
前端打包后的文件目录如下:
html 中的 css 路径如下:
文件路径符合。 - 确认前端有请求到css。
再查看前端发送的请求,确实有请求css,但是 response 的Content-Type
是text/plain
。
排查到这里,基本就确定了原因——浏览器只会渲染 Content-Type
为 text/css
的css文件。
解决方法:
在 Nginx 配置文件中添加这两行代码即可。
引入MIME配置文件
include /etc/nginx/mime.types;
指定默认的文件类型为 application/octet-stream
default_type application/octet-stream;
Web服务器在收到静态资源的文件请求时,会进行以下操作:
- 识别文件的后缀名;
- 在 服务器的MIME配置文件中找到对应的 MIME Type;
- 根据 MIME Type 设置 response 的
Content-Type
。
因此,在使用Nginx作为代理服务器时,需要在 nginx.conf
引入MIME配置文件。
不然Nginx会将文件的默认MIME类型(比如文本文件的默认类型为 text/plain
)设置为response 的 Content-Type
。
参考资料:
Nginx(十八)mime.types的作用_wzj_110的博客
Original: https://www.cnblogs.com/chrystal/p/16821781.html
Author: 绛绛
Title: 前端无法渲染CSS文件
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/800308/
转载文章受原作者版权保护。转载请注明原作者出处!