注册
登录
发生原因:
SpringBoot 把静态的文件在启动的时候都会加载到classpath的目录下的,package时把static目录下的资源一起打包到了jar包或war包中,此时上传的图片并未传入启动了的项目中,所以访问不到。项目重启后又会打成新的jar包,包含上一次上传的的图片,此时才会在页面上显示
解决方案
配置路径的虚拟映射
package com.et.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @Author: ETJAVA
* @CreateTime: 2024-04-15 21:15
* @Description: TODO 静态资源虚拟路径映射
* @Version: 1.0
*/
@Configuration
public class WebAppConfig implements WebMvcConfigurer {
@Value("${imageFilePath}")
private String imageFilePath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/filmImage/**").
addResourceLocations("file:"+imageFilePath); // 电影图片本地路径映射
}
}