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

 

posted @ 2022-11-27 11:37  __破  阅读(2010)  评论(0)    收藏  举报