2009-12-24 121 views
8

有沒有一個變量可以找到我的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

回答

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

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

15

解決了。

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

這其實給我的路到我的應用程序將這些圖像,CSS,WEB-INF等文件夾。

9

我知道這是一個老問題,但如果你不是在HTTP請求中這可能是工作:

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

歡迎使用堆棧溢出!請點擊「?」在下一次發佈答案時,通過文本框查看如何格式化帖子。 – 2011-10-19 10:42:43

2

如果你要建立,這是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