grails 中的链接和资产不包含前缀,grails.app.context 不工作

Links and assets in grails contains no prefix, grails.app.context not working

我正在尝试在 Tomcat 7 服务器上部署 Grails 2.5.3 应用程序,运行 在 Apache 后面(apache 运行 在 http://valkyrien.imada.sdu.dk:80 上)。 Tomcat 在端口 8080 上是 运行 并且 Apache 虚拟主机设置如下:

ProxyPass /gcp http://127.0.0.1:8080/ nocanon
ProxyPassReverse /gcp http://127.0.0.1:8080/
ProxyPreserveHost on

war 作为 ROOT.war 部署到 Tomcat 的 /webapps/ 目录。 显示了我的 grails 应用程序的索引页面,但页面上的 links 和资产 links 是错误的。 None 个以 /gcp/.

为前缀

示例:html 文件中 jQuery 的 javascript 资产是:

<script src="/assets/jquery-8c9c0e26152ea554b3ed6c4390439134.js" type="text/javascript"></script>

它将尝试访问 <APACHE-URL>/assets/jquery-8c9c0e26152ea554b3ed6c4390439134.js 处的 js 文件,即使该文件实际上在 <APACHE-URL>/gcp/assets/jquery-8c9c0e26152ea554b3ed6c4390439134.js 处可用。这同样适用于任何 link 控制器和动作。

将以下内容的任意组合添加到 Config.groovy 或 application.properties 不会改变任何内容(如 Whosebug 上的答案所建议):

grails.serverURL="http://valkyrien.imada.sdu.dk/gcp"
grails.app.context = "/gcp"

Grails 似乎忽略了 serverURL 属性。对war为什么这不起作用有什么建议吗? 运行 没有 Apache 是不行的。

谢谢!

将您的应用部署为 ROOT.war 而非 gcp.war 并更新属性

...或者更好地使用 mod_jk for apache。