0

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

关于查看什么以了解为什么会发生这种情况的任何有用的指示?

编辑: 针对其他人提出的一些优点,我最初的理解是,任何以斜杠开头的路径都是绝对路径,并且将基于主机,但是这个问题的答案(绝对路径和相对路径)另有说明,这就是我问我的问题的原因。

4

1 回答 1

1

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

...任何以斜杠开头的路径都是绝对路径,并且将基于主机

对,那是正确的。

您不是在询问如何创建包含上下文根(foo在您的示例中)的正确 URL,是吗?如果您使用 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" />" />

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

于 2013-06-04T21:08:36.467 回答