在我的应用程序中,生成的每个链接都包含在response.ecodeURL中。在某些服务器上,encodeURL会将上下文路径添加到URL。
该应用程序名为" appl"。创建链接/a/b/c.jsp在DEV系统上创建url /a/b/c.jsp,在Prod上创建/appl/a/b/c.jsp
tomcat是Apache Web服务器的后面,它通过ajp连接,不确定这是否是一个相关的事实。
编辑: 网络服务器并不相关。我尝试直接在端口8080上进行,同样的事情再次发生。
答案 0 :(得分:0)
<c:url>
始终预先设置URL的上下文路径:这是标准做法,应该始终完成。如果您使用<c:url>
,则不应添加自己的前缀。另请注意,<c:url>
为您运行通过HttpServletResponse.encodeURL
的网址。该方法在适当的时候添加基于URL的会话跟踪信息(例如“; jsessionid”路径参数)。
您应该始终为所有网址添加上下文前缀,无论您使用<c:url>
之类的内容还是自己执行此操作。你不应该两个都做。当您使用ROOT上下文时,上下文路径为""
(即空字符串),并且不会将任何内容预先设置为您的网址。