jfinal 如何配置静态资源url映射到本地路径

各位大佬:

      上午好!

请问jfinal 如何配置静态资源url映射到本地路径?

想要一个类似springboot 这样的功能:https://blog.csdn.net/weixin_34107955/article/details/92455563


评论区

要输就输给追求

2019-10-14 10:27

renderFile()呀

JFinal

2019-10-14 12:13

通过配置 undertow.resourcePath 可以将任何多个目录或者 classpath 内的资源映射进来,例如:
undertow.resourcePath = src/main/webapp, /var/www, classpath:static

以上第一个配置 src/main/webapp 用于映射到开发时项目中的 webapp 目录
第二个配置 /var/www 是操作系统内的一个目录
第三个配置 classpath: static 指向 CLASSPATH 下的 static 子目录,该目录可以是在 jar 包内存在的

多个配置可以用逗号分离,这些在文档中都有过说明:
https://www.jfinal.com/doc/1-4

JFinal

2019-10-14 12:16

我自己在开发 jfinal.com 的时候,配置如下:
undertow.resourcePath=src/main/webapp, /Users/james/jfinal-com/_res

其中 src/main/webapp 指向我正开发项目下的 webapp 目录
其中 /Users/james/jfinal-com/_res 目录下的资源是从部署环境的用户上传的各种资源文件,例如用户头像文件

这样做的好处是可以让开发环境的基本资源与部署环境动态不断产生的新资源隔离开来,从而 git 或 svn 版本控下面的资源文件可以最少化

JFinal

2019-10-14 12:18

最后补充一个知识点,undertow.resourcePath 配置,如果是逗号分隔的多个目录,那么第一个目录会成为项目的 webroot 目录,也就是说 jfinal 的 PathKit 工具类的 PathKit.getWebRootPath() 返回值将指向它

小徐同学

2019-10-14 14:24

@JFinal 这个可以

JFinal

2019-10-14 14:30

@小徐同学 这个功能早就有了,用着极度方便,开发与部署的环境可以尽可能的统一,部署环境下产生的新数据、新图片可以与项目资源分开存放,对于 git/svn 十分友好

JFinal

2019-10-14 14:34

@小徐同学 正如我上面的回复, 如果社区的 jfinal-com 项目的 undertow.resourcePath 配置不使用 /Users/james/jfinal-com/_res ,那么我在开发的时候,用户头像、贴子上传的图片都是缺失的,界面非常不美观

如果我将部署环境下新产生的用户头像、贴子图片下载到本地用于正开发的项目的话,项目目录下面就会有大量的这些资源文件,很不方便,尤其是对于 git / svn 版本管理

小徐同学

2019-10-14 14:54

@JFinal 是,我之前都是想着用nginx来做的。 这个能不能挂http的路径吧?

JFinal

2019-10-14 17:18

@小徐同学 undertow 应该也能挂 http 路径,看看他的文档

小徐同学

2019-10-14 18:06

@JFinal 嗯嗯 谢谢波总