SpringBoot2.X使用拦截器后静态资源访问404
今天在项目中添加了Intercptor后,发现我的前端页面的静态资源不能访问了。
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Autowired
private SessionInterceptor sessionInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(sessionInterceptor).addPathPatterns("/**");
}
经过百度后,终于解决了,SpringBoot2之后发现继承了WebMvcConfigurer类之后所有的静态资源都404了.
解决方法
重写 addResourceHandlers 方法
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Autowired
private SessionInterceptor sessionInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(sessionInterceptor).addPathPatterns("/**");
}
/**
* SpringBoot 2.x要重写该方法,不然css、js、image 等静态资源路径无法访问
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/META-INF/resources/")
.addResourceLocations("classpath:/resources/")
.addResourceLocations("classpath:/static/")
.addResourceLocations("classpath:/public/");
}
}