solon-web-staticfiles
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-web-staticfiles</artifactId>
</dependency>
1、描述
基础扩展插件,为 Solon Web 提供公共的静态文件服务支持。约定静态文件目录为:
resources/static/ #为静态文件根目录(v2.2.10 后支持)
映射关系,示例:
请求地址 /logo.jpg
映射地址为 resources/static/logo.jpg
2、配置参考(一般,默认即可不用配置)
#添加MIME印射(如果有需要?)
solon.mime:
vue: "text/html"
map: "application/json"
log: "text/plain" #这三行只是示例一下!
#是否启用静态文件服务。(可不配,默认为启用)
solon.staticfiles.enable: true
#静态文件的304缓存时长。(可不配,默认为10分钟)
solon.staticfiles.maxAge: 600
3、服务端压缩输出配置参考(gzip)
v2.5.7 后支持
# 设定 http gzip配置
server.http.gzip.enable: false #是否启用(默认 fasle)
server.http.gzip.minSize: 4096 #最小多少大小才启用(默认 4k)
server.http.gzip.mimeTypes: 'text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml'
注意:mimeTypes 默认的常见的类型,如果有需要增量添加
4、三种静态目录额外添加方式(一般,默认即可不用配置)
- 配置风格
#添加静态目录映射。(按需选择)#v1.11.0 后支持
solon.staticfiles.mappings:
- path: "/img/" #路径,可以是目录或单文件
repository: "/data/sss/app/" #1.添加本地绝对目录(仓库只能是目录)
- path: "/"
repository: "classpath:user" #2.添加资源路径(仓库只能是目录)
- 代码风格
下面的代码,与上面配置效果一一对应
public class DemoApp {
public static void main(String[] args) {
Solon.start(App.class, args, app -> {
/*提示:path 可以是目录或单文件;repository 只能是目录(表示这个 path 映射到这个 repository 里)*/
//1.添加本地绝对目录(例:/img/logo.jpg 映射地址为:/data/sss/app/img/logo.jpg)
StaticMappings.add("/img/", new FileStaticRepository("/data/sss/app/"));
//或
StaticMappings.add("/img/log.jpg", new FileStaticRepository("/data/sss/app/"));
//2.添加资源路径
StaticMappings.add("/", new ClassPathStaticRepository("user"));
});
}
}