簡體   English   中英

Tomcat未將應用程序URL用作該應用程序路徑的基礎

[英]Tomcat is not using the Application URL as the base for path for that application

我有一個war(foo.war)文件,該文件已部署到tomcat安裝中,並且tomcat正確地看到了該文件並將其擴展了,我可以使用http://localhost:8080/foo來訪問該站點,但可以使用任何路徑使用斜杠開頭(即/bar/test.js ),它將嘗試引用http://localhost:8080路徑而不是http://localhost:8080/foo路徑。 不以斜杠bar/test.js開頭的路徑可以bar/test.js工作。 我一直在搞怪一個小時左右,但到目前為止我還沒有提出任何建議。 我什至不確定調試此類問題的正確步驟。 與此相關的日志中什么都沒有顯示,我已經查看了配置文件,但是沒有任何提示。

有什么有用的指針可以幫助您了解為什么會發生這種情況?

編輯:為了回應其他人提出的一些要點,據我最初的理解,任何以斜杠開頭的路徑都是絕對路徑,並且將基於主機,但是此問題的答案( 絕對路徑&相對路徑 )另有說明,這就是為什么我問我的問題。

任何/開頭的內容都是相對於當前位置的。 任何以/開頭的內容都是主機的根 因此,除非我錯過您的描述中的某些內容,否則您看到的行為是正確的。

...任何以斜杠開頭的路徑都是絕對路徑,並且基於主機

對,那是正確的。

您不是要問如何創建包含上下文根(在示例中為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" />" />

除了添加上下文根目錄/路徑外,它還提供了其他一些優點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM