| 類型 | 定義 | 示例 | 適用場景 |
|---|---|---|---|
| 絕對路徑 | 文件在硬盤上的真實完整路徑 | E:\book\web\bg.jpg / /var/www/html/bg.jpg |
本地測試、服務器端文件操作 |
| 相對路徑 | 相對於當前文件的位置 | bg.jpg、img/bg.jpg、../bg.jpg |
HTML/CSS/JS 引用資源、Web 部署 |
| 相對虛擬目錄 | 相對於Web 應用根目錄 (Context Root) | /img/bg.jpg (以 / 開頭) |
JSP/Servlet/Web 框架內部跳轉、資源映射 |
./ 或 無前綴:當前目錄../:上一級目錄../../:上兩級目錄/(跨平台兼容)ServletContext.getRealPath("/") 獲取部署根路徑,拼接相對路徑得到絕對路徑操作文件。/app/user/login),確保部署路徑變更不失效。// Servlet 中獲取上傳文件保存的真實路徑
String realPath = getServletContext().getRealPath("/WEB-INF/uploads");
File saveDir = new File(realPath);
if (!saveDir.exists()) saveDir.mkdirs();
// Spring MVC 中注入
@Value("${web.upload-path:/WEB-INF/uploads}")
private String uploadPath;
@Autowired
private ServletContext servletContext;
public String getAbsoluteUploadPath() {
return servletContext.getRealPath(uploadPath);
}
「相對路徑走天下,虛擬目錄做跳轉,絕對路徑留後端」—— 牢記此口訣,告別路徑遷移噩夢。