配置SpringBoot部署图片访问路径
网上大概是基于tomcat server更改的配置感觉很麻烦,所以写了个拦截器动态访问图片。
package com.kero99.filter;
import java.io.File;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/**
* @author ygc
* 动态获取项目路径
*
* 因为部署项目后可能放在不同磁盘所以改为动态路径配置
*/
File file=new File("");
String path=file.getAbsolutePath().substring(0,file.getAbsolutePath().indexOf(File.separator));
//判断操作系统
String os = System.getProperty("os.name");
if (os.toLowerCase().startsWith("win")) { //如果是Windows系统
//项目相对路径+项目动态绝对路径
registry.addResourceHandler("/soil_event_note_upload_path/**").
addResourceLocations("file:"+path+"/soil_event_note_upload_path/");
registry.addResourceHandler("/image_info_path/**").
addResourceLocations("file:"+path+"/image_info_path/");
registry.addResourceHandler("/file_info_path/**").
addResourceLocations("file:"+path+"/file_info_path/");
}else{//linux和mac系统
registry.addResourceHandler("/soil_event_note_upload_path/**").
addResourceLocations("file:"+path+"/soil_event_note_upload_path/");
registry.addResourceHandler("/image_info_path/**").
addResourceLocations("file:"+path+"/image_info_path/");
registry.addResourceHandler("/file_info_path/**").
addResourceLocations("file:"+path+"/file_info_path/");
}
}
}