Grails应用程序根路径

ste*_*.yu 8 grails jetty

是否有一个变量,我可以找到我的Grails应用程序的根目录?

例如,我有一个文件夹,名称chart\%root%\web-app\images\我放置图表的位置.一旦我在Jetty上部署我的Grails应用程序,我会得到FileNotFoundException因为根路径变为/srv/www/vhosts/domain-name/jetty-version/

我想知道是否有一个返回根路径的变量(如/srv/www/vhosts/domain-name/jetty-version/webapps/myapp),应该是因为CSS使用相对路径就好了.

ste*_*.yu 15

解决了.

request.getSession().getServletContext().getRealPath("/")
Run Code Online (Sandbox Code Playgroud)

这实际上给了我应用程序放置图像,css,WEB-INF等文件夹的路径.


Sev*_*Sev 11

System.properties['base.dir']
Run Code Online (Sandbox Code Playgroud)

  • 在grails2.1中,它在本地开发模式下工作,但似乎不能在生产中工作 (3认同)

小智 9

我知道这是一个老问题,但如果您不在http请求中,这可能会有效:

ServletContextHolder.servletContext.getRealPath('/')
Run Code Online (Sandbox Code Playgroud)