完美解决SpringBoot上传图片之后,需要重服务才能访问
1.问题描述:
系统采用的架构,是采用SpringBoot+SSM+SpringSecurity+JWT
前端是小程序端或者PC的前端 Vue。当在前端上传图片之后,上传到指定的idea后端里面(这个版本没有使用云存储,是存储在本地文件里面)
如图所示:
图片在/resources/static/upload 下面已经上传成功,但是在target里面没有,需要刷新idea或者重起之后才能有。由于target没有图片,当我们
访问 http://ip地址:端口号/static/upload/sdfasdfas1231231.png 这种图片就访问不到的。
- 出现原因
这样导致的原理是服务器的保护措施导致的,服务器不能对外部暴露真实的资源路径,需要配置虚拟路径映射访问
3 解决办法
解释: /static/upload/** 映射到 XXXXXX\src\main\resources\static\upload\这个路径下面。访问
http://static/upload/123134243243.png 相当于访问 XXXXXX\src\main\resources\static\upload\123134243243.png
所有能够访问到图片。
具体的代码如下:
@Configuration
public class FileUploadConfig implements WebMvcConfigurer {