当前位置:   article > 正文

SpringBoot——Interceptor如何不拦截静态资源_intepecter不拦截静态资源

intepecter不拦截静态资源

今天碰到一个神坑!!如何让拦截器不拦截静态资源,网上查阅了各种资料,最后得出的结论是:

(1)使用"/static/**"是无效的

  1. egistry.addInterceptor(sessionInterceptor)
  2. .addPathPatterns("/**")
  3. .excludePathPatterns("/","/static/**");

(2)应该直接使用static里面的路径,如"/css/**"

  1. registry.addInterceptor(sessionInterceptor)
  2. .addPathPatterns("/**")
  3. .excludePathPatterns("/","/css/**","/js/**","/img/**");

(3)关键点!!!!!千万千万不要在WebConfig类前面加上@EnableWebMvc注解,它会让你的exclude全部失效!!!!然而springboot的官方文档中的例子是加上的!!当时没有注意!

正确的写法如下:

  1. @Configuration
  2. //@EnableWebMvc千万不能加,谁加谁傻逼
  3. public class WebConfig implements WebMvcConfigurer {
  4. private static final List<String> EXCLUDE_PATH= Arrays.asList("/","/css/**","/js/**","/img/**","/media/**","/vendors/**");
  5. @Autowired
  6. SessionInterceptor sessionInterceptor;
  7. @Override
  8. public void addInterceptors(InterceptorRegistry registry) {
  9. /*
  10. * 对根目录和静态文件不需要进行拦截,如果对根目录(即登录页面)进行拦截,将会导致循环重定向
  11. */
  12. registry.addInterceptor(sessionInterceptor)
  13. .addPathPatterns("/**")
  14. .excludePathPatterns(EXCLUDE_PATH);
  15. }
  16. }

我是在being上查到了这个问题,随后翻看官方文档,突然发现它这么写:

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-spring-mvc-auto-configuration

如果要使用springboot自动配置,那么就不能加上@EnableWebMvc注解!!without!!!!

搞了一个多小时!!继续干!

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号