问题描述
1、更新头像,并跳转回列表页,发现显示不出来
问题分析
通过查资料与实践发现,这是由于服务器的自我保护机制导致的现象,为了防止暴露绝对路径
简而言之,就是图片上传到的是src包下,不是tagert包下,但程序运行用的是target包下的代码
问题解决
对于上述问题,可以通过配置静态资源映射解决:
创建config包,创建对应的xxxxConfig类,实现WebMvConfigurer接口的addResourceHandlers方法
如果需要映射两个路径,类似于这样就可以
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Value("${code_img_path_local}")
private String codeImgPath;
@Value("${avatar_path_local}")
private String avatarPath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/pic/captcha/**").addResourceLocations("file:"+codeImgPath);
registry.addResourceHandler("/pic/avatar/**").addResourceLocations("file:"+avatarPath);
}
}