2020-12-23 11:42
@mr_wangyan 这个问题其实是 jfinal 之外的事情,但为了帮你省时间,jfinal 还是添加了点代码,解决了这个问题
这个问题的原因如下:
1:使用 nginx 代理 https 也就是 443 端口
2:nginx 与 jfinal 项目通信的通道并不是 443 端口,而是像你项目中用到的 1888 类似的其它端口
3:当你在 jfinal 中使用 rendirect(url) 做重定向的时候, jfinal 获取到的端口号必然只能是 1888,因为 nginx 与之通信的确用的是 1888
4:所以说 443 这个端口号对于 jfinal 项目来说是透明的,无法感知的
5:解决办法自然就出来了,通过在 nginx 中配置 proxy_set_header X-Forwarded-Port $server_port; 将 443 这个端口号通过 http 的 header 中传递过去
6:最终 jfinal 的 RediectRender 优先获取一下 X-Forwarded-Port 的值,如果获取到,那么重定向就优先使用该端口
2020-12-22 22:54
@mr_wangyan 先检查一下,请求是不是被重定向了,检查步骤:
1:先打开浏览器 chrome 的开发者工具窗口,点击 Network 标签
2:重现一次这个问题,看请求中是不是出现了 302 与 301 重定向请求。如果没有发生,状态码是 200
2020-12-22 11:43
@steven_lhcb_9527 gradle 的配置比较简洁,但生态不如 maven 好,而且版本库仍然是用的 maven
由于 maven 的 pom.xml 文件不会被高频编辑,所以即便配置比较罗嗦也还是可以接受
2020-12-16 15:30
@steven_lhcb_9527 主要是因为 jfinal 采用的是 API 引导式配置方式
也就是说所有的 jfinal 配置,其实是可以通过调用 java 代码形式提供的 API 进行配置,而 properties 文件只是起一个桥梁作用,将有些不方便在 java 代码中的配置放到外部配置文件中去,例如数据库连接的密码
从而,jfinal 自身没有对复杂配置文件的需求,所以也就没有 YmlKit