springboot2.0+拦截器后 , 静态资源被拦截问题解决(CGgeeker个人解决方案)

1.先弄懂第一件事:

   springboot默认的静态资源访问路径是:META-INF/resources > resources > static > public (访问优先级也是如此)

  我们可以翻一翻springboot源码看看:

  (1)先找到该类:

springboot2.0+拦截器后 , 静态资源被拦截问题解决(CGgeeker个人解决方案)

springboot2.0+拦截器后 , 静态资源被拦截问题解决(CGgeeker个人解决方案)

 (2)

springboot2.0+拦截器后 , 静态资源被拦截问题解决(CGgeeker个人解决方案)

springboot2.0+拦截器后 , 静态资源被拦截问题解决(CGgeeker个人解决方案)

2.在2.0之前的spring boot拦截器是不会拦截静态资源的,第一次入坑的时候  在网上看到了很多的解决方案 但是很多都没有效果,我个人想法是用restful风格做一个前后端分离的个人博客,不想用springboot官方推荐的thymeleaf模板,这就导致了我要用拦截器处理html页面和静态资源问题。

3.网上很多说法是这样配置的:我的静态资源是放在public文件夹下:

springboot2.0+拦截器后 , 静态资源被拦截问题解决(CGgeeker个人解决方案)

于是我就按照很多论坛上讲的配置成这样了:

springboot2.0+拦截器后 , 静态资源被拦截问题解决(CGgeeker个人解决方案)

然后,就没有然后了,还是无法访问我的css,img,js 等静态资源文件.......

3.解决方案:

因为我的静态文件都是放在public文件夹下面的  但是我们去访问这些静态资源的时候 在url中是不会通过/public请求的  而是直接通过/css  或者是  /js   访问 因此我们需要做的就是将这些拦截排除掉 ,和/public是没有关系的!

最后这样配置即可:

springboot2.0+拦截器后 , 静态资源被拦截问题解决(CGgeeker个人解决方案)