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 }
上面是顺利加载的页面,下面是没有加载静态资源的页面;