| 路徑寫法 | 含義 | 基準點 | 適用場景 |
|---|---|---|---|
| `./` 或 無前綴 | 當前目錄 | 當前資源所在目錄 | 同級資源引用 |
| `../` | 上一級目錄 | 當前資源所在目錄 | 引用父目錄資源 |
| `/resource` | Web 應用根目錄 (Context Root) | 部署後的 Web 應用根目錄 | **伺服器端轉發、重定向、JSP 引用** |
| `https://host/resource` | 絕對 URL | 瀏覽器地址欄 | 跨域、外部資源、AJAX 請求 |
CSS 檔案中的相對路徑**基準是 CSS 檔案本身所在目錄**,而非引用該 CSS 的 HTML 頁面。
例:`style.css` 在 `/css/`,裡寫 `background: url(./img/bg.png)` → 實際請求 `/css/img/bg.png`。
**在 WebRoot (或 WebContent) 根目錄**。
部署後對應 `https://host:port/ContextRoot/haha.txt`。
`src` 目錄下的資源為 Java 原始碼/配置檔,**編譯後進入 `WEB-INF/classes`,不可直接以 `/` 路徑訪問**。
同理,在 **WebRoot/Test/haha.txt**。`Test` 是 WebRoot 下的子目錄。
表單提交:瀏覽器根據**當前頁面 URL** 解析相對路徑。若 `a.jsp` URL 為 `/app/a.jsp`,提交 `b.jsp` → `/app/b.jsp`。
超連結:若 `` 在 `a.jsp` 中,**同樣基於當前頁面 URL 解析**,理應同樣有效。
**失效常見原因**:
路徑問題 90% 源於**基準點混淆**。牢記:伺服器端用 `/` 開頭的 Context Root 絕對路徑;客戶端資源用相對於自身的相對路徑,即可避開絕大多數坑。