solon.web.staticfiles
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.web.staticfiles</artifactId>
</dependency>
1、描述
基础扩展插件,为 Solon Web 提供公共的静态文件服务支持。约定静态文件目录为:
resources/static/ #为静态文件根目录
映射关系,示例:
请求地址 /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
#!开头,表示如果没有扩展目录则自动创建 //用于支持 ExtendStaticRepository
solon.extend: "!app_ext"
3、三种静态目录添加方式
- 配置风格
#添加静态目录映射。(按需选择)#v1.11.0 后支持
solon.staticfiles.mappings:
- path: "/img/" #路径,可以是目录或单文件
repository: "/data/sss/app/" #1.添加本地绝对目录(仓库只能是目录)
- path: "/"
repository: "classpath:user" #2.添加资源路径(仓库只能是目录)
- path: "/"
repository: ":extend" #3.添加扩展目录
- 代码风格
下面的代码,与上面配置效果一一对应
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"));
//3.添加扩展目录:${solon.extend}/static/
StaticMappings.add("/", new ExtendStaticRepository());
});
}
}