Grails应用程序根路径

问题描述:

有没有一个变量可以找到我的Grails应用程序的根目录?Grails应用程序根路径

例如,我有一个\%root%\web-app\images\这里我把我的图表中下名为chart文件夹。当我部署在码头我的Grails应用程序,我会得到FileNotFoundException因为根路径变得/srv/www/vhosts/domain-name/jetty-version/

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

+0

我猜我的问题是:为什么你需要到根路径?您可以使用相对的URL /图像/图表来获取您的图表,因此在这种情况下获取根路径似乎是额外的工作。 – 2009-12-27 02:58:20

+0

我使用了相对URL,但无法找到该文件夹​​。 新文件(“..”)。getAbsolutePath()产生与System.properties ['base.dir'] 相同的结果两者都返回Jetty文件夹的根文件夹而不是我的应用程序文件夹。 – 2009-12-28 03:41:32

+0

@ steve.yu,请将Martijn的标记标记为正确答案,并且工作简单。 – Athlan 2014-04-12 15:36:49

System.properties['base.dir'] 
+3

在grails2.1中,它可以在本地开发模式下工作,但似乎不能在生产环境中工作 – mozboz 2012-09-04 00:46:44

解决了。

request.getSession().getServletContext().getRealPath("/") 

这其实给我的路到我的应用程序将这些图像,CSS,WEB-INF等文件夹。

我知道这是一个老问题,但如果你不是在HTTP请求中这可能是工作:

ServletContextHolder.servletContext.getRealPath('/') 
+0

欢迎使用堆栈溢出!请点击“?”在下一次发布答案时,通过文本框查看如何格式化帖子。 – 2011-10-19 10:42:43

如果你要建立,这是GSP的试试这个:

${createLink(uri: '/')} 
+0

或者你也可以使用这个$ {request.contextPath} – 2015-03-22 09:15:14

+0

downvote因为问题是关于路径而不是URL – Bernhard 2016-05-09 10:44:22

+0

Upvote因为问题的标题让我直接从DuckDuckGo到我正在寻找的答案。 “这个答案很有用”,是的! – 2017-10-23 17:19:11