在 Java 中,Web 应用程序被捆绑到 WAR 中。默认情况下,许多 servlet 容器将使用 WAR 名称作为应用程序的上下文名称。
因此 myapp.war 被部署到http://example.com/myapp。
问题是 webapp 认为它的“根”是“根”,或者只是“/”,而 HTML 会认为应用程序的根是“/myapp”。
Servlet API 和 JSP 具有帮助管理这一点的工具。例如,如果在 servlet 中执行:response.sendRedirect("/mypage.jsp"),则容器将添加上下文并创建 url:http ://example.com/myapp/mypage.jsp "。
但是,您不能使用 HTML 中的 IMG 标签来做到这一点。如果你这样做 <img src="/myimage.gif"/> 你可能会得到一个 404,因为你真正想要的是“/myapp/myimage.gif”。
许多框架也具有上下文感知的 JSP 标记,并且有不同的方法可以在 JSP 中生成正确的 URL(没有一种特别优雅)。
对于编码人员来说,跳出何时使用“应用程序相对”网址而不是绝对网址是一个棘手的问题。
最后,还有需要动态创建 URL 和 CSS 中嵌入 URL(用于背景图像等)的 Javascript 代码问题。
我很好奇其他人使用什么技术来缓解和解决这个问题。许多人只是简单地对它进行平底船和硬编码,无论是服务器根目录还是他们碰巧使用的任何上下文。我已经知道那个答案了,这不是我要找的。
你做什么工作?