【问题标题】:Tomcat is not using the Application URL as the base for path for that applicationTomcat 未使用应用程序 URL 作为该应用程序路径的基础
【发布时间】:2013-05-31 09:55:12
【问题描述】:

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

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

编辑: 针对其他人提出的一些好的观点,我最初的理解是,任何以斜杠开头的路径都是绝对路径,并且将基于主机,但是这个问题的答案 (Absolute path & Relative Path) 表示否则这就是我问我的问题的原因。

【问题讨论】:

    标签: java tomcat tomcat7


    【解决方案1】:

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

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

    是的,没错。

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

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

    我个人更喜欢JSTL &lt;c:url&gt; 标签。

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

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

    【讨论】:

    猜你喜欢
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多