1. 允许静态资源被读取
-
配置FilePathConfig
@Data
@NoArgsConstructor
@Component
@ConfigurationProperties(prefix="file.path")
public class FilePathConfig {
String absolute;
String relative;
public void setAbsolute(String absolute) {
this.absolute = absolute;
File fileDic = new File(absolute);
if (!fileDic.exists()) {
fileDic.mkdirs();
}
}
}
-
配置WebMvcConfig
// 根据个人需求修改 "/public/**" 和 "classpath:/public/"
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Resource
FilePathConfig filePathConfig;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/public/**").addResourceLocations("classpath:/public/");
//文件磁盘图片url 映射
//配置server虚拟路径,handler为前台访问的目录,locations为files相对应的本地路径
registry.addResourceHandler(filePathConfig.getRelative()+"/**").addResourceLocations("file:" + filePathConfig.getAbsolute());
}
}
2. 使用静态资源
String urlPath = "/public/test.txt";
ClassPathResource readFile = new ClassPathResource(urlPath);
File file = readFile.getFile();
String path = file.getPath(); // 获取到 项目中的 test.txt 在磁盘中的绝对路径