网站部署到服务器后 CSS 文件加载成功,但是没有生效

刚解决了一个问题,前端代码发布到服务器后,样式没有生效。

开始以为 nginx 配置的静态资源路径有问题,通过 network 发现 css 文件确实请求成功。

然后怀疑代码有问题,查看 css 文件中其中一个 dom 节点的样式,确实能匹配上(data-xxx 一致),将样式拷贝后通过 elements 看板手动添加上,样式也生效了。

文件下载成功,内容没问题,但就是没有生效,好像浏览器并没有据此构建 CSSOM(这一点也许可以通过性能调试工具查看),如此神奇的事情之前没有遇到过。

后来发现原来是 nginx 配置错误,由于配置文件是事先组织好发给运维去部署的,所以没有对其仔细进行验证,nginx 配置文件中缺少了 MIME 配置:

include       mime.types;

nginx 的 conf 目录下默认有个文件 mimx.types,包含各种 MIME 配置,内容:


types {
    text/html                                        html htm shtml;
    text/css                                         css;
    text/xml                                         xml;
    image/gif                                        gif;
    image/jpeg                                       jpeg jpg;
    application/javascript                           js;
    application/atom+xml                             atom;
    application/rss+xml                              rss;

   ...
}

右边是文件后缀,左边是关联这个文件类型的 MIME。

服务器会根据资源文件的后缀去 types 配置中查找对应的 MIME,然后将其添加到响应头 content-type 中,这样客户端收到响应后,才会知道该如何处理它,例如 text/css 会构建 CSSOM。

  • 4
    点赞
  • 2
    收藏 更改收藏夹
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮蛋很白

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值