spring boot 访问静态资源文件
项目结构:
spring Boot 通过 classpath/static 目录访问静态资源。注意存放静态资源的目录名称必须是 static。
将静态资源放在此目录下,通过浏览器直接可以访问
访问路径:
http://localhost:6666/po/uploads/index.html
但是此时 假如我们再上传个文件到此目录下 再次访问新文件
却不能访问了
404了
我们访问不了上传后的文件,需要重启或热部署服务器后,才能访问。
解决方法是在客户端,我们是可以直接访问文件的绝对路径,
因此,我们可以配置虚拟路径,将访问路径映射到文件的绝对路径,
那么,我们访问虚拟路径,就相当于访问文件绝对路径了,文件自然可以显示出来。
配置类:
@Configuration public class MyWebConfig extends WebMvcConfigurationSupport { /** * 解决文件上传后,无法立即打开的问题。 * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/views/**") // 虚拟路径 // file: 表示以本地的路径方式去访问绝对路径。 .addResourceLocations("classpath:/static/uploads/"); // 相对路径 // .addResourceLocations("file:"); // 绝对路径 } }
此时我们复制个index3.html
再次访问 依然不能访问
绝对路径:
@Configuration public class MyWebConfig extends WebMvcConfigurationSupport { /** * 解决文件上传后,无法立即打开的问题。 * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/views/**") // 虚拟路径 // file: 表示以本地的路径方式去访问绝对路径。 //.addResourceLocations("classpath:/static/uploads/"); // 相对路径 .addResourceLocations("file:/Users/wangzekun/Downloads/1/"); // 绝对路径 } }