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了

浙公网安备 33010602011771号