技术说明:
springboot:2.1.4.RELEASE
jQuery
Ajax
mysql:8.0.32
问题描述:
springboot打成jar包,上传到服务器之后,在同目录下,又创建了一个upload目录,用来储存照片,但是前端引用url路径之后不能显示图片
问题分析:
因为不在同一个目录之下,路径url需要做一个映射的配置
后端映射配置代码如下:
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {private String imgPath = "file:/www/yuanshengrong/upload/";//这里是你服务器储存图片的位置;注意,路径末尾加/,Windows用file:D/XX/,linux用file:/XX///private String imgPath = "file:D:\\upload/";//本地测试路径@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/upload/**")//前段访问url前缀,/uoload/**,映射到服务器物理路径,这里的upload对应你前端的http+ip+端口+upload,看如下图片.addResourceLocations(imgPath);//这里就是上面的服务器储存图片的路径}@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*");//允许域名访问,如果*,代表所有域名}}
前段展示图片的时候,记得加上upload,如果没有前缀,就不用加,主要看你后端怎么配置的前缀
<img src='/upload/"+contractDo.contractPhoto+"'>//这里的contractDo.contractPhoto是你后端返回的图片名称,看你自己怎么写的,你就怎么改