您的位置:首页 > 编程语言 > Java开发

SpringBoot自定义拦截器后无法访问静态文件

2019-01-21 22:09 2296 查看

现象

        SpringBoot 2.x项目自定义拦截器后无法访问到js、css静态文件。

        目录如下:

        

        引用静态文件方式:

原因

        自定义的拦截器拦截了所有请求,导致静态文件不能访问。

        注:SpringBoot 1.x的resources/static目录下的静态文件在自定义拦截器后访问不会被拦截,而2.x会拦截。

[code]@Override
public void addInterceptors(InterceptorRegistry registry) {
// TODO Auto-generated method stub
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/", "/index.html", "/user/login");
}

 解决办法

        方法1:排除asserts目录及其子目录下的静态文件的拦截。

[code]@Override
public void addInterceptors(InterceptorRegistry registry) {
// TODO Auto-generated method stub
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/", "/index.html", "/user/login", "/webjars/**", "/asserts/**");
}

        缺点:如果static目录下有多个静态文件目录的话,就需要排除多个目录。

        方法2:        

        1)首先在appication.properties中配置静态资源的映射路径:

        spring.mvc.static-path-pattern=/static/**

        不配置的话默认静态资源默认映射路径为:  /**

        2)排除/static目录及其子目录下静态文件的拦截

        3)引用或访问静态资源时要加上/static目录

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐