[英]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.