PathKit.getWebRootPath()读取不到项目运行根路径是什么原因?

我用jfinal作为第三方工具,在使用PathKit.getWebRootPath()获得项目根路径为物理路径比如:d:\,并不是获取的项目部署后运行的项目根路径?这是什么原因?工具是idea,求解答!

评论区

JFinal

2016-12-12 14:15

这个与项目设置的路径有关,例如你的项目将 web root 路径设置在 abc 下面,那 PathKit.getWebRootPath() 得到的就是 abc,将项目配置好即可

似水流言1

2016-12-12 14:20

@JFinal web root路径是“/”应该得出的路径我这边是:E:\workspace\demo\out\artifacts\demo_war_exploded,而实际不是这个

JFinal

2016-12-12 14:21

@似水流言1 所以是 IDEA 或 eclipse 的配置问题

JFinal

2016-12-12 14:22

@似水流言1 这个已经被无数次证实过的,另外启动的时候,如果是 maven 项目的目录结构,注意四个启动参数是:src/main/webapp 80 / 5

似水流言1

2016-12-12 14:24

tomcat启动不是maven,因为是作为第三方工具包使用,并没有作为jfinal配置来启动,这个有关系吗?

JFinal

2016-12-12 14:34

@似水流言1 不使用jfinal 的集成启动方式,更加没有关系,不需要理会前面我说的参数问题,只需要让 PathKit.getWebRootPath() 这个方法返回正确的路径就好

如果确实没有办法做到,可以在 YourJFinalConfig 的 configConstant(Constants me) 中通过 PathKit.setWebRootPath(...) 手动强制指定,但是这个虽然是解决了眼前的问题,但你的整个 web 项目所依赖的路径可能还是存在别的问题

JFinal

2016-12-12 14:35

在正常的情况下,只要你的 web 项目配置是没问题的,PathKit.getWebRootPath() 就一定可以返回正确的路径,这个方法用了快五年了,不可能有 bug

似水流言1

2016-12-12 14:39

谢谢波总的详细解答,我在仔细看下是不是环境配置的问题,第二种方法暂时无法去测试!

chenxb8089

2018-02-08 17:33

@JFinal 我这里也是localhost/:4 Not allowed to load local resource: file:///D:/EclipseWorkSpaceWork/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Jfinal_WEB_Frame/assets/css/amazeui.min.css

Jason、

2018-03-26 14:10

PathKit.getWebRootPath() 这个路径 返回的是反斜杠的在linux下 会报错

戒尘

2021-02-04 17:11

我的idea版本是2018.2也遇到了这个问题,最后通过设置jre路径解决的,不能使用默认的jre,指定了jre路径,如:C:\Program Files\Java\jdk1.8.0_191\jre

热门反馈

扫码入社