我们将 Java/Spring 应用程序部署到 Heroku 中,使用出色webapp-runner
的 Tomcat-lite servlet 容器。在从 7.0.27.1 升级到 7.0.31.1 时,设置默认上下文路径“/”的行为似乎会导致<spring:url>
标签出现问题。具体来说,使用“/”的默认上下文路径,标签之类的<spring:url value="/foo/bar"/>
最终呈现为//foo/bar
. 例如,我在 OS X 上测试的所有浏览器(Chrome、Safari、Firefox)似乎都没有特别优雅地处理这些,并尝试加载http://foo/bar
,导致各种混乱。
我可以想到两种解决方法:
- 指定
--context-path ""
参数webapp-runner
- 这似乎是“最好的”,因为它对应于 7.0.27.1 行为 - 将标签写为
<spring:url context="" .../>
- 不确定可能会有什么额外后果,考虑如何SpringUrl
使用前导斜杠来确定UrlType
.
这些都合理吗?如果没有,我应该考虑其他一些解决方案吗?