Solon

solon.web.staticfiles

v2.7.5 native </> markdown
<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"));
        });
    }
}