发现 static 或 public 下面的图片无法访问
spring: profiles: active: dev resources: static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${vipsoft.file.path}
原因:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebConfig implements WebMvcConfigurer { @Autowired private AuthInterceptor authorizationInterceptor; /** * 如果重写了这个方法,yml 里面的 static-locations 将不生效 */ // @Override // public void addResourceHandlers(ResourceHandlerRegistry registry) { // // 允许访问static文件 // registry.addResourceHandler("/**") // .addResourceLocations("classpath:/resources/") // .addResourceLocations("classpath:/static/") // .addResourceLocations("classpath:/public/"); // //文件磁盘图片url映射 // // registry.addResourceHandler("/file/**") // // .addResourceLocations("file:D://upload/"); // } /** * 添加拦截器 -- 如果不加 static-locations 将不能被访问 */ @Override public void addInterceptors(InterceptorRegistry registry) { //拦截路径可自行配置多个 可用 ,分隔开 registry.addInterceptor(authorizationInterceptor).addPathPatterns("/**"); } /** * 跨域支持 * * @param registry */ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowCredentials(true) .allowedMethods("GET", "POST", "DELETE", "PUT", "PATCH", "OPTIONS", "HEAD") .maxAge(3600 * 24); } }