关于springboot项目图片上传到本地,通过浏览器访问不了图片,必须重启之后才能访问的解决方案
springboot上传图片的规则
Spring Boot对静态资源映射提供了默认配置,默认将 /** 所有访问映射到以下目录:
classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources
必须将你的图片放在以上的文件夹中,才能可以访问。例如我上传到static文件夹下(访问路径不需要添加static),必须重启项目才能访问到。
原因
为什么要重启才能访问上传的图片呢,因为你的代码在运行中,你新上传的图片,并没有进入编译,所以找不到,不能访问,怎么解决呢。
解决
1.自定义静态资源访问,写一个配置类。
@Configuration
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
前面的upload意思是,访问的时候路径上要加上upload,不然也访问不到。
后面的upload意思是,你图片上传的路径,我的图片上传就在upload文件中(新创建的的文件夹)。
registry.addResourceHandler("/upload/**").addResourceLocations("file:upload/")
}
}