应用场景:文件存储在服务器的指定目录,需要通过浏览器访问,一般会使用Nginx来做静态资源服务器,浏览器访问到Nginx后,Nginx匹配到对应的URL后会转发到对应的文件路径,例如:
一、Nginx配置静态资源服务
server {
listen 80;
server_name 127.0.0.1;
# 匹配访问的URL前缀
location /f1/ {
# 静态资源存储路径
alias D:/data2/;
}
location /f2/ {
alias F:/data2/;
}
}
当浏览器访问:
127.0.0.1/f1/image/1.png 转发到服务器目录 D:/data2/image/1.png
127.0.0.1/f2/image/1.png 转发到服务器目录 F:/data2/image/1.png
二、java SpringBoot配置静态资源服务
配置类:
@Component
class WebConfigurer implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 将/f1/**开头的地址映射到文件挂载路径
registry.addResourceHandler("/f1/**").addResourceLocations("file:///D:/data2/");
registry.addResourceHandler("/f2/**").addResourceLocations("file:///F:/data2/");
}
}
浏览器访问:127.0.0.1:8080/f1/image/1.png,即可访问到静态资源
当然,也可以通过配置文件的方式配置,但是没有使用代码的方式灵活,配置文件的方式:
spring:
application:
name: fileServer
mvc:
static-path-pattern: '/f1/**' # 路径匹配,f1开头的路径转发到静态文件存储路径
web:
resources:
static-locations:
- 'file:///F:/data2/' # 静态文件存储路径
- 'file:///D:/data2/'
server:
port: 8080