1.bug再现
做完图片上传之后,上传图片发现页面不能立刻显示,本以为图片没有上传成功,但当我在文件夹和数据库都没发现异常,然后我便重启了服务器,再次访问发现竟然可以了。不重启它就不能显示,很奇怪。
2.bug原因
通过百度,在大佬博客里找到了答案。这是因为对服务器的保护措施导致的,服务器不能对外部暴露真实的资源路径,需要配置虚拟路径映射访问。
3.bug再见
重新创建一个类,这个类表示添加一个静态资源文件夹,路径是D盘的IJavaProject文件夹,所有上传到该路径的静态文件,都可以通过 /upload/"+图片名 的方式来访问。这样就不需要重新部署项目,上传成功后图片就可以显示了。这个类我是建在util包中的。
package com.arpa.springboot.util;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class UploadConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//映射图片保存地址
registry.addResourceHandler("/upload/**").addResourceLocations("file:D:\\JavaProject\\springboot\\src\\main\\resources\\static\\upload\\");
}
}
addResourceHandler()里配置需要映射的文件夹,此处代表映射文件夹user下的所有资源。
addResourceLocations()配置文件夹在系统中的路径,使用绝对路径,格式为“file:你的路径”
借鉴了一部分,附上链接