Tag: contextpath

在Web应用程序中处理上下文的任何聪明的方法?

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

什么是HTML <base>标签的build议?

我从来没有见过<base> HTML标签实际上在任何地方使用。 它的使用有什么缺陷意味着我应该避免它? 我从来没有注意到它在现代生产网站(或任何网站)使用的事实让我感到震惊,虽然它似乎可能有用于简化我的网站上的链接的有用的应用程序。 编辑 使用基本标签几个星期后,我最终发现使用基本标签的一些主要陷阱,使它比最初出现的更不理想。 基本上,基本标签下href='#topic'和href=''的变化与默认行为是非常不兼容的,而且这种默认行为的变化很容易让第三方库在你的控制之外变得非常不可靠 ,因为它们在逻辑上将依赖于默认行为。 通常这些变化是微妙的,并且在处理大型代码库时导致不太明显的问题。 我从那以后创造了一个答案,详细说明了我所经历的问题。 因此,在您承诺广泛部署<base>之前,请自行testing链接结果,这是我的新build议!

如何使用相对路径而不包含上下文根名称?

为了处理我的静态文件(CSS,JS),我必须编写像/AppName/templates/style/main.css这样的绝对路径。 有没有解决方案,我可以写style/main.css相对路径?