清除浏览器缓存后,发现页面样式不能加载了

清除浏览器缓存后,发现页面样式不能加载了

这里需要注意一个springboot版本问题:
Spring Boot 1.x和2.x版本拦截器对于静态资源访问的区别!

  • Spring Boot 1.x版本已经做好了静态资源映射,所以拦截器不会对.css、.js等静态资源进行拦截
  • Spring Boot 2.x版本,静态资源会被拦截器拦截,需要排除静态资源。
1、问题一

问题如下:刚开始访问的时候,样式访问不到(但是在请求中样式并未报错,),但是登录成功后,样式访问成功了,清除缓存后样式又没了。
在这里插入图片描述
我们怀疑样式被拦截了,所以我们尝试直接请求静态资源:
在这里插入图片描述
发现静态资源确实被拦截了,被拦截后的逻辑如下图,即没有登录前,网页中没有session,这时候请求静态资源是请求不到的。当登录成功后,网页中存在session了,这时再访问静态资源就可以通过拦截器了。
在这里插入图片描述
通过在拦截器中配置日志发现,静态资源确实都被拦截了。
在这里插入图片描述

解决方法:在拦截器中,将静态资源路径排除,问题就解决了。

在这里插入图片描述
排除静态资源后就不会被拦截了:
在这里插入图片描述

2、问题二

请求资源被拦截了,但是F12检查的时候发现bootstrap.min.css仍然可以访问到,只不过Content-Type类型不正确,类型应该为text/css,它的类型却是text/html。

主要原因归结于:Resource interpreted as Stylesheet but transferred with MIME type text/html,即原本是CSS文件结果被当作text/html页面进行解析了。
在这里插入图片描述

springboot2.xx既然将静态资源拦截到了,为什么还会返回响应? 期待各位网友的解答!!!

关于这个问题:返回的响应页面都变为了html
在这里插入图片描述

spring boot 2.x依赖的spring 5.x版本,相对于spring boot 1.5.x依赖的spring 4.3.x版本而言,针对资源的拦截器初始化时有区别,具体源码在WebMvcConfigurationSupport中。

参考博客:https://blog.csdn.net/ln1593570p/article/details/80607616

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值