1.bug场景
做图片上传 功能是,发现图片上传至项目下后无法通过ip:port/路径访问,重启项目是就可以正常访问。
2.bug原因
这是因为对服务器的保护措施导致的,服务器不能对外部暴露真实的资源路径,需要配置虚拟路径映射访问。
3.bug解决
@Configuration
public class ResourceConfigAdapter extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//获取文件的真实路径 work_project代表项目工程名 需要更改
String path = System.getProperty("user.dir")+"\\work_project\\src\\main\\resources\\static\\pciture\\";
String os = System.getProperty("os.name");
if (os.toLowerCase().startsWith("win")) {
registry.addResourceHandler("/picture/**").
addResourceLocations("file:"+path);
}else{//linux和mac系统 可以根据逻辑再做处理
registry.addResourceHandler("/picture/**").
addResourceLocations("file:"+path);
}
super.addResourceHandlers(registry);
}
}
①:我的上传图片的目录结构
②:结果
通过 ip:port/picture/图片名称