方法一、
在yml文件中配置
spring:
# 没配拦截器可以这样配置静态资源访问,有拦截器在webMvcConfigurer中配置
# mvc:
# static-path-pattern: /image/**
# resources:
# static-locations: file:D://img/,file:/data/www
方法二、
在WebMvcConfigurer类中覆写addResourceHandlers方法
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
/**
* 拦截器加载
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 多个拦截器组成一个拦截器链
// addPathPatterns 用于添加拦截规则
// excludePathPatterns 用户排除拦截
registry.addInterceptor(loginInterceptor).addPathPatterns("/**").
excludePathPatterns("/login/tologin","/file/**","/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**","/doc.html/**");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//和页面有关的静态目录都放在项目的static目录下
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
//上传的图片在D盘下的img目录下,访问路径如:http://localhost:8081/image/1.jpg
//其中image表示访问的前缀。"file:D:/img/"是文件真实的存储路径
registry.addResourceHandler("/file/**").addResourceLocations("file:D:/img/");
super.addResourceHandlers(registry);
}
}
踩坑记录:
我之前按照网上教程配置完后(网上教程是对的,自己没看清楚配置),项目启动后总是访问不到图片,后面发现本地路径配置的时候多写了/**,导致图片无法访问,所以各位在配置时请一定记得本地路径千万不要加file:D:/img/**,