Html请求CSS显示:Resource interpreted as Stylesheet but transferred with MIME type text/html
程序员文章站
2022-06-28 12:18:01
情况如下:Tomcat服务器上CSS的Content-Type格式设置错了,导致CSS样式出不来,借助了以为博主的博客,搞了两天,最终是弄好了。博客原因:Web 服务器在响应请求时,除了返回所请求的资源本身,一般还会在响应的头部带上 Content-Type 字段,其值应当与该资源的 MIME 类型相匹配。如果 Content-Type 没有与资源一同返回或配置不正确的话,就有可能在一些浏览器上造成兼容性问题。如网页中的样式文件 CSS 对应的 Content-Type 应该为 text/css,如...
情况如下:
Tomcat服务器上CSS的Content-Type格式设置错了,导致CSS样式出不来,借助了以为博主的博客,搞了两天,最终是弄好了。博客
原因:
Web 服务器在响应请求时,除了返回所请求的资源本身,一般还会在响应的头部带上 Content-Type 字段,其值应当与该资源的 MIME 类型相匹配。如果 Content-Type 没有与资源一同返回或配置不正确的话,就有可能在一些浏览器上造成兼容性问题。如网页中的样式文件 CSS 对应的 Content-Type 应该为 text/css,如果未返回正确的 Content-Type,则有可能造成浏览器拒绝渲染样式。
但是我工程中加了过滤器,统一了返回的类型为text/html,只需要把对应的CSS的请求改了就行了。
解决方法:
在过滤器中加入以下代码,将包含css等的请求的ContentType设置成"text/css;charset=utf-8"。
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
if (requestURI.contains("/css/") ||
requestURI.contains("/js/") ||
requestURI.contains("/fonts/") ||
requestURI.contains("/img/") ||
requestURI.contains("/images/") ||
requestURI.contains("/error/")) {
response.setContentType("text/css;charset=utf-8");
filterChain.doFilter(request, response);
return;
}
response.setContentType("text/html;charset=utf-8");
弄了2天,完成:
这里是总结:
借助了博客:
本文地址:https://blog.csdn.net/qq_19265749/article/details/109274612