Grails应用程序根路径

Grails应用程序根路径,grails,jetty,Grails,Jetty,是否有一个变量可以让我找到Grails应用程序的根目录 例如,我在\%root%\web app\images\下有一个名为chart的文件夹,我将图表放在其中。一旦我在Jetty上部署Grails应用程序,我将获得FileNotFoundException,因为根路径变成/srv/www/vhosts/domain name/Jetty version/ 我想知道是否有一个变量返回根路径(如/srv/www/vhosts/domain name/jetty version/webapps/my

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

例如,我在
\%root%\web app\images\
下有一个名为
chart
的文件夹,我将图表放在其中。一旦我在Jetty上部署Grails应用程序,我将获得
FileNotFoundException
,因为根路径变成
/srv/www/vhosts/domain name/Jetty version/

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

System.properties['base.dir']
request.getSession().getServletContext().getRealPath("/")

这实际上为我的应用程序提供了放置图像、css、WEB-INF等文件夹的路径。

我知道这是一个老问题,但如果您不是http请求,这可能会起作用:

ServletContextHolder.servletContext.getRealPath('/')

如果要确定这是GSP,请尝试以下操作:

${createLink(uri: '/')}

我想我的问题是:为什么需要找到根路径?您也可以使用相对URL/images/charts来访问图表,因此在这种情况下,获取根路径似乎是额外的工作。我使用了相对URL,但它找不到文件夹。新文件(“..”).getAbsolutePath()产生与System相同的结果。属性['base.dir']都返回Jetty文件夹的根文件夹,而不是我的应用程序文件夹。@steve.yu,请在工作时将Martijn标记为正确答案,并且非常简单。欢迎使用堆栈溢出!下次发布答案时,请单击文本框旁边的“?”,查看如何格式化帖子。在grails2.1中,这在本地开发模式下工作,但在生产模式下似乎不起作用。在grails 3+中,这是
null
,或者您也可以使用它${request.contextPath}向下投票,因为问题是关于路径的,而不是向上投票,因为问题的标题直接引导我从DuckDuckGo到我想要的答案。“这个答案很有用”,是的!