1.解决SpringBoot上传图片后访问不到的问题
-
问题描述
前后端不分离项目
前端:thymeleaf
后端:mybatis+springboot架构
在前端上传图片之后,上传到指定的本地路径
路径为:idea项目下的 resources/static/upload/img/**
已经上传成功,文件夹里面也有访问 http://ip地址:端口号/路径/xxx.png 这种图片是访问不到的。
-
出现原因
原理是服务器的保护措施导致的,服务器不能对外部暴露真实的资源路径,需要配置虚拟路径映射访问。
-
解决办法:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// /upload/** 为虚拟地址
//file:///为真实的本地地址
registry.addResourceHandler("/upload/**").addResourceLocations("file:///"+System.getProperty("user.dir")+"/src/main/resources/static/upload/img/");
WebMvcConfigurer.super.addResourceHandlers(registry);
}
}
2. 第二种解决方案
spring.web.resources.static-locations=classpath:/static/,file:${upload.dir}
upload.dir = G:/2021_12_8/easypoi_springboot/src/main/resources/static/upload/img
classpath:代表你当前静态资源存放位置
upload.dir:代表你的图片存放的真实路径
http://localhost:ip/图片名称 即可访问图片