获取Grails以在其相对URL中生成相对路径

时间:2012-08-01 14:48:01

标签: url grails gsp

我有一个Web应用程序,可以直接作为http://host.foo.loc:8080/foo/访问,也可以通过安全的反向代理http://www.company.com/apps/foo/

访问

默认情况下,Grails将生成具有相对路径的相对URL,例如:

<g:form action="bar">

将产生:

<form action="/foo/bar" method="post" >

这在本地可以,但反向代理不接受http://www.company.com/foo/bar(它缺少/ apps /)

如果我这样做:

<g:form action="bar" base=".">

没关系。但我真的不想在每个生成链接的标签上指定它。

处理此问题的最佳方法是让Grails在其相对URL中生成相对路径。或者,我可以将全局“baseUrl”设置为“。”。但我也不知道该怎么做。

有什么想法吗?

[edit]实际上,将“base”设置为“。”不起作用。第一页“/ foo / controller / action”将生成链接为“./controller/nextaction”,浏览器将其翻译为“/ foo / controller / controller / action”=&gt; 404.我想这就是他们使用绝对路径的原因:它们不是路径。

2 个答案:

答案 0 :(得分:0)

我从来没有能够使这种情况工作,所以我始终保持代理和未代理的上下文路径相同,即我将应用程序放在http://host.foo.loc:8080/apps/foo。您可以通过命名WAR文件apps#foo.war在Tomcat中拥有这样的多级上下文路径。

答案 1 :(得分:0)

grails.app.context = "/foo/bar"添加到您的Config.groovy