grails.app.context被忽略部署到Tomcat

时间:2015-04-21 18:15:10

标签: apache tomcat grails

我有一台Apache服务器代理从mainhost.com/subdirectorysomeec2instance/subdirectory的所有流量。当我启动Apache并点击someec2instance.com时,我会看到ROOT war页面。这很好。如果我将我的应用程序部署为ROOT.war,那么一切正常someec2instance.com

但是,当我访问mainhost.com/subdirectory时,所有资产网址和link_to网址都是错误的,并指向mainhost.com而不是mainhost.com/subdirectory

我已设置grails.app.context并通过application.properties确认正在设置正确的grails.env

部署为grails.app.context时,为什么不尊重ROOT.war?我希望该网站可以someec2instance.com/context访问,但它完全忽略grails.app.context

1 个答案:

答案 0 :(得分:4)

原因是不起作用的是这些设置用于本地运行,而不是在部署为WAR文件时。当您在run-app中使用tomcat或jetty插件时,我们将容器配置为使其看起来像是在运行"爆炸" war(类似于各种服务器将WAR解压缩到文件系统时)。由于容器以嵌入模式运行,因此可以根据需要以编程方式轻松配置它。

但是当你部署一个WAR文件时,那里的可配置性差不多。在run-app中,Grails的构建逻辑启动服务器,配置它并部署应用程序,但是一个WAR文件部署到"真正的"服务器由服务器管理,而不是相反。