1

我在 grails 中创建了一个名为 的应用程序xyz,并将创建的战争 ( xyz.war) 更改为 ROOT.war。grails 应用程序上下文现在也是“/”。我可以从根(即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 文件中添加所有 url。将 grails 应用程序上下文更改为/xyz没有帮助,在代码中附加/xyz到 urlMappings.groovy也没有帮助。/$controller/$action

4

1 回答 1

0

我会告诉你我做了什么,你可以决定它是否是你想做的。第一步是将 grails contextPath 更改为应有的状态。

在我main.gsp用于所有页面的页面中,我在脑海中设置了这个:

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

然后我在所有使用硬编码路径的 javascript 文件中使用该变量。您不应该在 GSP 中使用任何硬编码路径。您有标签可以根据控制器和操作为您获取这些标签。如果您需要进一步的解释,请告诉我。

于 2012-10-18T12:31:04.847 回答