Springboot静态资源WebMvcConfigurationSupport报404
Springboot内置网页使用
1.配置application.yml
spring:
resources:
static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/
如果使用thymeleaf的话,需要该配置
spring:
thymeleaf:
cache: true
prefix: classpath:/templates/
2.资源放置路径
/resources/static
/resources/templates
如果不使用拦截器情况下,这样配置可以正常访问静态资源
使用springMVC拦截器
@Configuration
public class MvcConfig extends WebMvcConfigurationSupport {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getInterceptor())
.excludePathPatterns("/error", "/editorUpload")
.excludePathPatterns("/js/**", "/css/**","/img/**","*.html","/image/**")
.addPathPatterns("/**");
}
@Bean
public Interceptor getInterceptor() {
return new Interceptor();
}
}
WebMvcConfigurationSupport如果继承该类,实现MVC配置的话,静态资源是依然404,即使重写addResourceHandlers,添加资源文件也是不行,推荐使用WebMvcConfigurer 这是一个接口类,没有addResourceHandlers方法,添加静态资源只需如下配置,这样就能解决404问题
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getInterceptor())
.excludePathPatterns("/error", "/editorUpload")
.excludePathPatterns("/js/**", "/css/**","/img/**","*.html","/image/**")
.addPathPatterns("/**");
}