2012-10-18 34 views
1

我在grails中創建了一個名爲xyz的應用程序,並將創建的戰爭(xyz.war)更改爲ROOT.war。 Grails應用程序上下文現在也是「/」。我可以從根(即​​或http://www.mywebsitedomain.com/)訪問該應用程序。我所有的img src標籤也是絕對的,例如。
<img src='/images/abc.png'>
和AJAX調用一個動作都是這樣
將路徑預先加載到grails中的所有靜態資源?

$.ajax({ 
    url:"/myController/myAction/myId" 
}) 

一切都正常運行。

現在我需要將部署的戰爭從ROOT.war更改爲xyz.war。但是所有資源都是絕對的(它們以'/'開頭)。我看不到任何圖像,也沒有任何調用控制器的工作,因爲他們期望/xyz我可以進行配置更改嗎?我不想在我的gsp和js文件中將/xyz添加到所有網址。將grails應用上下文更改爲/xyz沒有幫助,也沒有在/$controller/$action代碼中將/xyz附加到urlMappings.groovy。

回答

0

我會告訴你我做了什麼,並且你可以決定它是否是你想要做的。第一步是將grails contextPath更改爲它應該是的。

在我main.gsp,我使用的所有頁面,我在這頭設置:

<script type="text/javascript"> 
    var contextPath = "${contextPath}"; 
</script> 

然後我使用該變量在我所有的使用硬編碼路徑JavaScript文件。您不應該在GSP中使用任何硬編碼路徑。你有標籤來根據控制器和行動爲你獲取這些信息。如果您需要進一步解釋,請告訴我。

+0

是的,但我很好地分離.js和.gsp文件。既然你不能在js文件中使用''標籤,我必須硬編碼。至於你的解決方案,是的,我想這就是要做的。 –