首页 > 编程语言 > 详细

SpringBoot2.x中配置拦截器导致对静态资源的拦截问题

时间:2020-10-02 22:59:24      阅读:77      评论:0      收藏:0      [点我收藏+]

在学习SpringBoot拦截器这一章,照着视频一步一步来,又发现出了问题,视频中的SpringBoot版本是1.X的,直接配置拦截器以后不需要排除静态资源路径,不会对静态资源造成拦截,影响显示效果;而我安装的是SpringBoot2.1版本,按照视频里的操作来发现配置了拦截器之后,会把我们的静态资源也给排除了

 public void addInterceptors(InterceptorRegistry registry) {
                //静态资源:*.css,*js
                //springBoot1.x已经做好了静态资源映射,但是2.x以上版本不行
                registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**")
                        .excludePathPatterns("/index.html","/","/user/login");
            }

启动运行以后,发现页面显示不正常,图标不见了,经过查询得知,在SpringBoot2以上版本,不仅要手动添加排除静态资源路径,还要添加静态资源映射方法,映射到我们的静态资源路径下才能正常显示,修改过后的代码如下
技术分享图片

            @Override
            public void addInterceptors(InterceptorRegistry registry) {
                //静态资源:*.css,*js
                //springBoot已经做好了静态资源映射
                registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**")
                        .excludePathPatterns("/index.html","/","/user/login","/static/**");
            }

            @Override
            public void addResourceHandlers(ResourceHandlerRegistry registry) {
                registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
                WebMvcConfigurer.super.addResourceHandlers(registry);
            }

此外,需要在html文件中对引用静态资源的路径全部添加为静态资源引用
技术分享图片

再次运行,发现恢复正常了,也实现了路由拦截~~~

技术分享图片

SpringBoot2.x中配置拦截器导致对静态资源的拦截问题

原文:https://www.cnblogs.com/jackpan-blog/p/13762676.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!