undertow 如何把项目移到外部,而不是放在webapp里面呢

undertow 如何把项目移到外部引用,而不是放在webapp里面呢

评论区

JFinal

2018-12-25 16:46

配置:undertow.resourcePath 即可

可配置多个,用逗号分隔,例如:
undertow.resourcePath=webapp, /var/www/my-proj, /var/www/upload

配置成多个时,如果目录不存在,jfinal undertow 会默认帮你跳过, 所以为了兼顾开发环境与部署环境,可以配置多个

lyq027

2018-12-25 17:50

@JFinal 好的,感谢

JFinal

2018-12-25 18:00

@lyq027 这个配置还有一个巨大的好处,部署环境通常会生成一些上传文件之类的一些动态变化的数据,而你的开发环境中是没有这些数据的

这时,将这些动态内容额外配置到项目之外的目录之下,在部署的时候就不用考虑挪动或覆盖这类目录的问题了

例如项目中的 src/main/webapp/upload 这个目录是存放上传文件的,你可以将这个文件挪到项目之外,例如挪到:
/var/my-project/upload

然后配置一下:
undertow.resourcePath = /var/my-project/upload, webapp, src/main/webapp

lyq027

2018-12-26 14:30

@JFinal 好的,明白,谢谢

JFinal

2018-12-26 14:40

@lyq027 接上一条补充,前面讲的将 upload 挪到别的地方,这个是让 jfinal undertow 可以当成 web 资源访问,你上传的时候要上传到这里,还需要如下配置:
configConstant(Constants me) {
me.setBaseUploadPath("/var/my-project/upload");
}

windows 系统下也是一样,只不过目录是下面这样的:
D:/my-project/upload
一定要是绝对路径才可以