标签:拦截器 静态 springframework registry org import login public png
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 }
上面是顺利加载的页面,下面是没有加载静态资源的页面;
标签:拦截器,静态,springframework,registry,org,import,login,public,png 来源: https://www.cnblogs.com/biehongli/p/11069078.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。