一、在SpringBoot中本身寫的攔截器,竟然把靜態資源也攔截了,致使了頁面加載失敗。css
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 }
解決方法,在你註冊攔截器的方法中,將這些靜態資源排除掉,這樣就能夠順利加載出來了,靜態資源。實現本身的目標。html
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 }
上面是順利加載的頁面,下面是沒有加載靜態資源的頁面;web