grails中的链接和资源不包含前缀,grails.app.context不起作用

时间:2016-03-07 22:22:46

标签: apache tomcat grails virtualhost

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

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

战争部署为ROOT.war到Tomcat的/webapps/目录。 显示我的grails应用程序的索引页面,但页面上的链接和资产链接是错误的。它们都不以/gcp/为前缀。

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

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

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

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

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

似乎Grails忽略了serverURL属性。为什么这不起作用的任何建议? 没有Apache的运行不是一种选择。

谢谢!

1 个答案:

答案 0 :(得分:1)

将您的应用部署为ROOT.war,而不是gcp.war和更新的属性

...或者更好地使用mod_jk来表示apache。