模板的圖片在 Windows 開得到,放上 Linux 站點後卻是 404。先把瀏覽器請求的完整路徑和實際檔名並排看:Logo.svg 與 logo.svg,在區分大小寫的目錄裡是兩個不同名稱。
先比路徑,別先改偽靜態
打開 DevTools 的 Network,點失敗圖片,記下請求的 URL。再到存放檔案的目錄核對每一段:/assets/Logo.svg 中,assets 的大小寫、檔名和副檔名都要一致。若 Linux 上只存在 Logo.svg,模板卻引用 logo.svg,改路由規則未必能解決。
例如,放一個 assets/Logo.svg 在 Linux 原生 ext4 目錄,由靜態檔案伺服器提供:正確大小寫的網址回應 200,小寫網址回應 404。在這個例子裡,根因是檔名不匹配。另一個 Windows 目錄的大小寫屬性未啟用,同一檔案則能用兩種名稱開啟。
Windows 與 WSL 也要看實際目錄
不能只看作業系統名稱。Windows 支援目錄層級的大小寫屬性;WSL 裡掛載的 Windows 路徑,也不等於 Linux 原生檔案系統。若要核對 Windows 目錄,使用只讀查詢,將路徑換成自己的素材目錄:
fsutil.exe file queryCaseSensitiveInfo "C:\site\assets"
Linux 端可用 findmnt -T /你的素材目錄 查檔案系統,再查看實際檔名。不要為了一張失效圖片,直接切換整個目錄或系統的大小寫設定;這可能影響其他工具找檔案。
修一處引用,再檢查其他頁面
先備份模板檔,讓圖片引用與已存在的檔名一致;重新整理頁面,確認該圖片實際載入,再檢查共用頁首、列表和詳情頁是否也引用同一資源。若需要重新命名,先找出全部引用,避免修首頁卻弄壞其他頁面。回滾時只還原自己的引用或命名變更。
404 只表示伺服器沒有找到請求資源,不能單憑狀態碼認定是大小寫。檔案沒上傳、目錄位置不同、路由、存取規則都可能造成類似結果;大小寫對得上後仍失敗,就接著查這些項目,而不是反覆清快取。
參考資料
資料核對:2026年10月4日。文件與網站環境可能更新,操作前請核對自己的設定。
