Tomcat未使用应用程序URL作为该应用程序的路径基础

时间:2013-06-04 21:01:37

标签: java tomcat tomcat7

我有一个war(foo.war)文件被部署到tomcat安装,tomcat正确地看到该文件并将其展开,我可以使用http://localhost:8080/foo访问该站点,但对于任何使用的路径斜线开头(即/bar/test.js)它将尝试引用http://localhost:8080路径而不是http://localhost:8080/foo路径。不以斜杠bar/test.js开头的路径工作正常。我已经乱搞了一个小时左右的谷歌搜索,但到目前为止,我没有想出任何东西。我甚至不确定调试此类问题的正确步骤是什么。在与此相关的日志中没有显示任何内容,我查看了配置文件,但没有任何内容突然出现在我身上。

任何有用的指示,看看为什么会发生这种情况?

修改 为了回应其他人提出的一些好处,我最初的理解是,任何以斜线开头的路径都是绝对路径,并且将基于主持人,但是这个问题的答案是Absolute path & Relative Path )另有说明,这就是我提出问题的原因。

1 个答案:

答案 0 :(得分:1)

/开头的的任何内容都与当前位置有关。以/开头的任何内容都是 root到主机。 因此,除非我在您的描述中遗漏了某些内容,否则您所看到的行为是正确的。

  

...任何以斜杠开头的路径都是绝对路径   将基于主持人

是的,这是对的。

您没有询问如何创建包含上下文根(在您的示例中为foo)的正确网址,是吗?如果你正在使用JSP,答案就在这里:https://stackoverflow.com/a/4764586/131929

<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" />

我个人赞成JSTL <c:url>代码。

<link type="text/css" rel="stylesheet" href="<c:url value="/css/style.css" />" />

除了添加上下文根/路径之外,它还提供了更多好处。

相关问题