在前端開發中,常遇到圖片路徑被瀏覽器錯誤解析的情況。例如,將圖片統一存放在項目根目錄下的 img 文件夾中,HTML 中引用路徑為 img/searchDiv_form.png,但瀏覽器實際請求的卻變成了 file:///C:/Users/Boogle/OneDrive/travel/profile_twice/CSS/img/searchDiv_form.png。可以發現,瀏覽器在圖片路徑前錯誤地拼接了 CSS 文件所在的目錄路徑,導致圖片無法正常加載。
這是一個典型的相對路徑解析錯誤。瀏覽器解析相對路徑的基準是當前 HTML 文件所在的目錄,而非項目根目錄或圖片實際存放目錄。若 HTML 文件放置在 CSS 文件夾內,而圖片引用使用的是相對於項目根目錄的路徑 img/xxx.png,瀏覽器會以 HTML 文件所在目錄(即 CSS/)為基準去查找 img/ 文件夾,自然找不到文件。
根據 HTML 文件與圖片文件夾的實際相對位置,修正 src 屬性值。若結構如下:
project/
├── CSS/
│ └── index.html
└── img/
└── searchDiv_form.png
則在 index.html 中應寫為:
<img src="../img/searchDiv_form.png" alt="示例圖片">
../ 表示返回上一級目錄(即項目根目錄),再進入 img/ 文件夾。
若項目部署在 Web 服務器上,可使用以 / 開頭的根相對路徑:
<img src="/img/searchDiv_form.png" alt="示例圖片">
此方式以域名根目錄為基準,不受 HTML 文件所在目錄影響,但需在服務器環境下運行(本地 file:// 協議無效)。
現代前端項目(Vue、React、Webpack 等)可配置路徑別名(如 @/assets/img/xxx.png),構建時自動解析為正確路徑,從根源避免手寫相對路徑出錯。
assets 或 public 目錄。file:///C:/...)僅本機有效,部署後必失效。掌握相對路徑解析機制,是前端工程師必備的基本功。遇到資源 404 時,優先檢查「當前文件位置」與「引用路徑基準」是否匹配。