springboot攔截器攔了靜態資源css,js,png,jpeg,svg等等靜態資源

一、在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

相關文章
相關標籤/搜索