0

在我的应用程序中,生成的每个链接都被 response.ecodeURL 包围。在某些服务器上,encodeURL 将上下文路径添加到 URL。

该应用程序被命名为“appl”。创建链接 /a/b/c.jsp 在 DEV 系统上创建 url /a/b/c.jsp,在 Prod 上创建 /appl/a/b/c.jsp

tomcat 位于通过 ajp 连接的 Apache Webserver 后面,不确定这是否相关。

编辑:网络服务器不相关。我尝试直接在端口 8080 上进行,同样的事情又发生了。

4

1 回答 1

0

<c:url>总是在 URL 的上下文路径之前添加:这是标准做法,应该总是这样做。如果您正在使用,<c:url>则不应添加自己的前缀。另请注意,它会为您<c:url>运行 URL HttpServletResponse.encodeURL。如果合适,该方法会添加基于 URL 的会话跟踪信息(例如“;jsessionid”路径参数)。

您应该始终将上下文前缀添加到所有 URL,无论您使用类似的东西<c:url>还是自己做。你不应该两者都做。当您使用 ROOT 上下文时,带有 be ""(即空字符串)的上下文路径和任何内容都不会预先添加到您的 URL。

于 2013-07-27T15:10:32.900 回答