随笔 - 597  文章 - 4  评论 - 445  阅读 - 424万

springboot拦截器拦了静态资源css,js,png,jpeg,svg等等静态资源

1、在SpringBoot中自己写的拦截器,居然把静态资源也拦截了,导致了页面加载失败。

复制代码
 1 package com.bie.config;
 2 
 3 import com.bie.component.MyLocalResolver;
 4 import com.bie.interceptor.LoginInterceptor;
 5 import org.springframework.context.annotation.Bean;
 6 import org.springframework.context.annotation.Configuration;
 7 import org.springframework.web.servlet.LocaleResolver;
 8 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 9 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
10 import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
11 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
12 
13 /**
14  *
15  */
16 @Configuration
17 public class SpringMvcWebConfigSupport implements WebMvcConfigurer {
18 
19     /**
20      * 默认访问的是首页
21      *
22      * @param registry
23      */
24     @Override
25     public void addViewControllers(ViewControllerRegistry registry) {
26         registry.addViewController("/").setViewName("login");
27         registry.addViewController("/login.html").setViewName("login");
28         registry.addViewController("/main.html").setViewName("dashboard");
29     }
30 
31     /**
32      * 将static下面的js,css文件加载出来
33      *
34      * @param registry
35      */
36     @Override
37     public void addResourceHandlers(ResourceHandlerRegistry registry) {
38         //registry.addResourceHandler("/static/").addResourceLocations("classpath:/static/");
39         registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
40     }
41 
42     /**
43      * 将国际化添加到容器中
44      *
45      * @return
46      */
47     @Bean
48     public LocaleResolver localeResolver() {
49         return new MyLocalResolver();
50     }
51 
52     /**
53      * 注册拦截器
54      *
55      * @param registry
56      */
57     @Override
58     public void addInterceptors(InterceptorRegistry registry) {
59         registry.addInterceptor(new LoginInterceptor())
60                 .addPathPatterns("/**")
61                 .excludePathPatterns("/", "/login.html", "/user/login",
62                         "/**/*.css", "/**/*.js", "/**/*.png", "/**/*.jpg",
63                         "/**/*.jpeg", "/**/*.gif", "/**/fonts/*", "/**/*.svg");
64     }
65 }
复制代码

解决方法,在你注册拦截器的方法中,将这些静态资源排除掉,这样就可以顺利加载出来了,静态资源。实现自己的目标。

复制代码
 1 /**
 2      * 注册拦截器
 3      *
 4      * @param registry
 5      */
 6     @Override
 7     public void addInterceptors(InterceptorRegistry registry) {
 8         registry.addInterceptor(new LoginInterceptor())
 9                 .addPathPatterns("/**")
10                 .excludePathPatterns("/", "/login.html", "/user/login",
11                         "/**/*.css", "/**/*.js", "/**/*.png", "/**/*.jpg",
12                         "/**/*.jpeg", "/**/*.gif", "/**/fonts/*", "/**/*.svg");
13     }
复制代码

上面是顺利加载的页面,下面是没有加载静态资源的页面;

 

posted on   别先生  阅读(7242)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示