springboot 访问服务器静态资源

一  应用场景

一个springboot的应用,需要访问服务器/home/webapp/upload  目录下的静态资源。一般是动态上传的图片,需要访问时,需要用到。

二 实现方式 

2.1 通过 WyCmsWebMvcConfigurer 添加路由的方式来访问静态文件。

注意配置的要点:路径用 file: 开头。注意 windows和linux的配置,路径都用" /"来表示,不能使用"\"

1. 配置文件

wycms:
  # 文件路径 示例( Windows配置file:D:/wycms/uploadPath,Linux 
   置file:/home/wycms/uploadPath)
  outerImgLocation: file:/home/webapp/

注意:无论是 linux还是windows,配置的路径,都要用:file: 路径 这样子配置,缺少file: 就无法访问

2. 添加 WyCmsWebMvcConfigurer,注册资源访问路径

/**
 * Created by wangl on 2017/11/21.
 * todo:springMVC配置文件
 * <p>
 * 注意:这里不能使用  WebMvcConfigurationSupport  因为这这个类会倒置springboot的自动装配失效,
 * 从而造成SPRINGBOOT 默认配置的  静态资源文件的路径无法访问的问题发生
 */
@Configuration
@Slf4j
public class WyCmsWebMvcConfigurer extends WebMvcConfigurerAdapter {

    @Value("${wycms.outerImgLocation:''}")
    private String outerImgLocation;

    @Value("${server.servlet.context-path:''}")
    private String CONTEXT_PATH;

    //访问静态资源
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        log.info("*************addResourceHandlers***************");
        //注册访问路由
        registry.addResourceHandler("/outer/**").addResourceLocations(outerImgLocation);
        super.addResourceHandlers(registry);
    }
}

 

2.2 使用  static-locations 来配置静态文件的访问

spring:
  #配置外部的文件访问路径  一定要注意:这里的路径配置为: file:xxx/xxx/ 无论是windows还是linux都要用这种路径格式才可以
  resources:
    static-locations: classpath:static/,file:../upImages/,file:D:/home/webapp/

  

三. 访问  

3.1 基于配置配置处理器的方式访问 

访问 /outer的时候,即访问服务器: /home/webapp/  这个目录下是否存在 1.jpg 

http://localhost:8088/outer/1.jpg

其中1.jpg 放在服务器 /home/webapp 路径下面。

3.2 基于静态资源配置的访问 

即访问服务器 : /home/webapp/  这个目录下是否存在 1.jpg 

http://localhost:8088/1.jpg

如果上述两种方式同时配置,那么如果  /home/webapp/ 存在1.jpg,那么通过上面两种方式都可以访问。神不神奇,意不意外。

posted @ 2023-04-09 17:20  不卷轮子锅  阅读(752)  评论(0编辑  收藏  举报