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/"); // 绝对路径
}
}


浙公网安备 33010602011771号