1

我们将 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.

这些都合理吗?如果没有,我应该考虑其他一些解决方案吗?

4

2 回答 2

2

webapp-runner-7.0.34.1 已将默认值更改--context-path"". 如果您升级,它应该可以解决您的问题。

于 2013-02-01T01:06:00.403 回答
0

我有类似的双斜杠问题 //从 webapp-runner 7.0.34.0 升级到webapp-runner 7.0.34.1 为我解决了这个问题

我曾尝试过<spring:url>${pageContext.request.contextPath}。升级 webapp-runner 解决了这两种情况下的问题。

更多详情:http ://bit.ly/1zuL1T1

于 2014-10-26T08:08:59.287 回答