我们有一些应用程序部署到同一个 tomcat 服务器上(目前正在升级到 grails 3,所以这可能是未来几个月的 OBE,但它已经困扰我们很长时间了)并且其中两个应用程序偶尔会失去它们的相对上下文根路径。
假设我们有“app1”和“app2”部署到server:port/app1
和server:port/app2
。
app1 工作得很好,但 app2 有时(大约 20% 的时间,可能)会部署,并且所有<g:link/>
链接(或任何其他生成的链接,例如资产位置)相对于服务器根目录生成......应用程序正确部署在/app2
,因此链接指向错误的位置。
例如,<g:link controller='hello' action='index'/>
将生成链接/hello/index
而不是/app2/hello/index
.
我不知道要发布的相关代码是什么,我们已经将它与我们的其他应用程序进行了比较,并且在表现出这种行为的两个应用程序中没有发现任何明显的不同。但只有这两个(十几个)应用程序会以这种方式中断。
任何关于可能导致此问题或在哪里查看的想法将不胜感激。
编辑:正在使用的插件:
compile "org.springframework.boot:spring-boot-starter-logging"
compile "org.springframework.boot:spring-boot-autoconfigure"
compile "org.grails:grails-core"
compile "org.springframework.boot:spring-boot-starter-actuator"
provided "org.springframework.boot:spring-boot-starter-tomcat"
compile "org.grails:grails-dependencies"
compile "org.grails:grails-web-boot"
compile 'org.grails.plugins:cache:4.0.0.M2'
compile 'org.grails.plugins:cache-ehcache:3.0.0.M1'
compile "org.grails.plugins:scaffolding"
compile "org.grails.plugins:hibernate4"
compile "org.hibernate:hibernate-core:4.3.10.Final"
compile "org.hibernate:hibernate-ehcache:4.3.10.Final"
console "org.grails:grails-console"
profile "org.grails.profiles:web"
runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.14.1"
runtime "com.h2database:h2"
testCompile "org.grails:grails-plugin-testing"
testCompile "org.grails.plugins:geb"
testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1"
testRuntime "net.sourceforge.htmlunit:htmlunit:2.18"