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,那么通过上面两种方式都可以访问。神不神奇,意不意外。
半斤八两开始写BLOG了