将url添加到grails中的所有静态资源?

时间:2012-10-18 07:07:24

标签: grails url-mapping

我在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。

1 个答案:

答案 0 :(得分:0)

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

在我用于所有页面的main.gsp中,我将此设置在头部:

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

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