Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 部署到Tomcat时忽略grails.app.context_Apache_Tomcat_Grails - Fatal编程技术网

Apache 部署到Tomcat时忽略grails.app.context

Apache 部署到Tomcat时忽略grails.app.context,apache,tomcat,grails,Apache,Tomcat,Grails,我有一台Apache服务器代理从mainhost.com/subdirectory到someec2instance/subdirectory的所有流量。当我启动Apache并点击someec2instance.com时,我得到了根war页面。那很好。如果我将我的应用程序部署为ROOT.war,那么在someec2instance.com上一切都可以正常运行 但是,当我访问mainhost.com/subdirectory时,所有资产URL和指向URL的链接都是错误的,并且指向mainhost.c

我有一台Apache服务器代理从
mainhost.com/subdirectory
someec2instance/subdirectory
的所有流量。当我启动Apache并点击
someec2instance.com
时,我得到了根war页面。那很好。如果我将我的应用程序部署为ROOT.war,那么在someec2instance.com上一切都可以正常运行

但是,当我访问
mainhost.com/subdirectory
时,所有资产URL和指向
URL的
链接都是错误的,并且指向
mainhost.com
而不是
mainhost.com/subdirectory

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


当我部署为
ROOT.war
时,为什么不尊重
grails.app.context
?我希望该站点可以在
somec2instance.com/context
上访问,但它好像完全忽略了
grails.app.context

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


但是,当您部署WAR文件时,没有什么可配置性那么多。在
runapp
中,Grails的构建逻辑启动服务器、配置服务器并部署应用程序,但部署到“真实”服务器的WAR文件由服务器管理,而不是由服务器管理。

是的,它忽略Grails.app.context。您需要将ROOT.war重命名为ContextName.war。我认为需要更改apache配置以支持这一点,但最终这是更好的方法。我现在没有访问apache的权限,所以我会在访问时尝试。这很有意义。如果我部署在contextined.war,看起来一切正常。我只需要将apache配置为正确的代理。