特性加强:为JFinal增加多资源目录支持,支持资源文件与项目分离,加快编译打包速度,提升工作效率

为 JettyServer 及 JettyServerForIDEA 增加 ResourceCollection 使 JFinal.start() 时支持多资源目录解决打war包时大型(GB级)静态资源,打包时间超长,war 包巨大,部署上传时间超长问题,使得war应用与资源文件分离,提升工作效率,简化开发阶复杂度;

调整如下:

class JettyServer implements IServer {
    ...
    private void doStart() {
        ...
        webApp.setContextPath(context);
        // 增加 ResourceCollection 支持绑定多个资源目录,webAppDir 以逗度分隔多个资源目录即可
        ResourceCollection resources = new ResourceCollection();
        resources.setResourcesAsCSV(webAppDir);
        webApp.setBaseResource(resources);    // webApp.setWar(webAppDir);
        ...
    }
}

使用示例:

// 静态资源目录使用绝对路径,这样在开发阶段即可访问外部静态资源,使得不需要使用nginx之类代理服务实现静态资源分离,提升开发效率
JFinal.start("src/main/webapp,/other/large/static-resource1,/other/large/static-resource2", 8080, "/");

假设资源目录如下:

src/main/webapp/index.html
/other/large/static-resource1/static/index2.html
/other/large/static-resource1/static/index3.html

JFinal.start后,访问如下:

http://localhost:8080/index.html 
http://localhost:8080/static/index1.html 
http://localhost:8080/static/index2.html



评论区

JFinal

2017-12-18 11:55

jfinal 3.4 在本地已经开发了一些功能了,到时候合并你的 pull request 时可能会覆盖掉你的代码,到时候会再找你再提交一版 pull request

感谢你的支持

Terely

2019-09-30 21:35

@JFinal Jetty的这个功能现在是不是不支持了?undertow 通过undertow.resourcePath 配置1个web module没啥问题,2个以上 web module 我测试是有问题找不到后续的。

热门分享

扫码入社