我在grails中创建了一个名为xyz
的应用程序,然后我将创建的战争(xyz.war
)更改为ROOT.war。 grails应用程序上下文现在也是“/”。我可以从root访问该应用(即http://localhost:8080/
或http://www.mywebsitedomain.com/
)。我的所有img src
标签也是绝对的,例如。
<img src='/images/abc.png'>
和ajax调用一个动作就像这样
$.ajax({
url:"/myController/myAction/myId"
})
一切都运行良好。
现在我需要将已部署的战争从ROOT.war更改为xyz.war。但所有资源都是绝对的(它们以'/'开头)。我看不到任何图像,也没有对控制器的任何调用工作,因为他们希望在它们之前有/xyz
。 我可以更改配置吗?我不想将/xyz
添加到我的gsp和js文件中的所有网址。将Grails应用上下文更改为/xyz
没有帮助,也没有在/xyz
代码中将/$controller/$action
附加到urlMappings.groovy。
答案 0 :(得分:0)
我会告诉你我做了什么,你可以决定它是不是你想做的。第一步是将grails contextPath更改为它应该是什么。
在我用于所有页面的main.gsp
中,我将此设置在头部:
<script type="text/javascript">
var contextPath = "${contextPath}";
</script>
然后我在所有使用硬编码路径的javascript文件中使用该变量。您不应该在GSP中使用任何硬编码路径。你有标签可以根据控制器和动作为你获取这些标签。如果您需要进一步解释,请告诉我。