SpringBoot 2.x.x会拦截静态资源问题

时间:2023-12-31 10:12:08

之前在看尚硅谷视频时,可谓是按照这老师的说法,一步一步按部就班,于是采坑了,在SpringBoot 2.x.x之前是不会对静态资源拦截的,但是现在已经普通使用2.x.x这个版本会对静态资源进行拦截。看如下代码。

    //WebMvcConfigurerAdapter中注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").
excludePathPatterns("/index.html","/","/user/login","/webjars/**","/static/**");
}

    这是我在遇到问题网上查看的写法,但是就是行不通。其实和static没有关系,因为static这种是默认类路径下的资源,在url上也不会***/static/js访问,如查看源代码,所以静态资源js、css是直接被访问的。

@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)
public class ResourceProperties {
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/" };

  以下是我的写法:

  

 //WebMvcConfigurerAdapter中注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").
excludePathPatterns("/index.html","/","/user/login","/webjars/**","/css/**","/js/**","/img/**");
    // index.html、/、/user/login分别是对访问首页和 表单提交不拦截
    // /webjars/**是对webjars依赖进来的文件不拦截
    // /css/**,/js/**,/img/** 是对static下静态资源不拦截,注意在SprngBoot 2.x.x中是要这样指定的,2.x.x之前不需要
    
    //-----------------建议将静态资源放在/static/下的XX文件夹下拦截规范可以简化成 “/XX/**”--------------
}