2009-12-24 1 views
8

Grails 애플리케이션의 루트 디렉토리를 찾을 수있는 변수가 있습니까?Grails 애플리케이션 루트 경로

예를 들어, 나는 내 차트를 넣어 \%root%\web-app\images\에서 chart라는 이름의 폴더가 있습니다. 나는 부두에 내 Grails 애플리케이션을 배포하면, 루트 경로가 /srv/www/vhosts/domain-name/jetty-version/

내가 알고 싶습니다되기 때문에 내가 FileNotFoundException을 얻을 것이다 루트 경로 (예 : /srv/www/vhosts/domain-name/jetty-version/webapps/myapp)를 반환하는 변수가 있고 CSS가 상대 경로를 잘 사용하기 때문에 있어야합니다.

+0

I을 내 질문을 추측한다 : 왜 당신은 루트 경로에 도착해야합니까? 상대 URL/이미지/차트를 사용하여 차트에 올릴 수 있으므로 루트 경로를 얻는 것이이 경우 추가 작업처럼 보입니다. –

+0

상대 URL을 사용했지만 폴더를 찾을 수 없습니다. 새 파일 (".."). getAbsolutePath()는 System.properties [ 'base.dir']와 동일한 결과를 산출합니다. 둘 다 내 응용 프로그램 폴더 대신 Jetty 폴더의 루트 폴더를 반환합니다. –

+0

@ steve.yu 일하는 동안 Martijn 's를 정답으로 표시해주세요. – Athlan

답변

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

grails2.1에서 로컬 dev 모드에서 작동하지만 프로덕션 환경에서는 작동하지 않는 것 같습니다. – mozboz

15

해결.

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

이것은 실제로 내 응용 프로그램이 이미지, CSS, WEB-INF 등 폴더를 저장하는 경로를 제공합니다.

9

나는이 오래된 질문 알아요,하지만 당신은 HTTP 요청에없는 경우이 일할 수 :

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

Welcome to Stack Overflow! "?" 다음 번에 텍스트 상자를 사용하여 답변을 게시하면 게시물의 형식을 지정하는 방법을 볼 수 있습니다. –

2

이이 GSP에이 시도입니다 설정하려면 :

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

또는 질문의 제목이 DuckDuckGo에서 내가 찾던 답변으로 바로 안내했기 때문에이 질문은 경로가 아니고 URL –

+0

downvote를 사용할 수 있습니다. "이 대답은 유용합니다", 예! – Bernhard

+0

Upvote가 아니기 때문에이 너무 $ {request.contextPath} –