Loading Now

清除瀏覽器快取完整指南:解決 CSS 不更新、JS 不更新與快取錯亂問題(開發者篇)

快取系統流程圖:展示應用程式 (Application) 查詢快取 (Cache),若未命中則從資料庫 (Database) 存取資料並回寫至快取的機制

1. 哪些狀況是快取造成的

當網站內容或程式碼更新後仍顯示舊畫面,你是不是試過按 F5 重新整理、甚至開無痕模式,卻發現網站的 CSS 或 JS 還是沒有更新?這通常是 瀏覽器快取(browser cache)伺服器快取(server cache) 沒被刷新的關係。常見情況包括:

  • 前端部署後,客戶仍看到舊版頁面
  • CSS 樣式未更新、JS 動作仍執行舊版本
  • 圖片、API 資料仍是舊資料
  • 清除瀏覽器快取後才恢復正常

這些都是快取未被正確更新的典型案例。理解這些狀況,有助於開發者在除錯與部署階段更快定位問題。


2. 快取的優點與清除快取的必要性

(1) 快取的基本原理

瀏覽器會暫存圖片、CSS、JS 等靜態資源,加速載入速度。
伺服器端則可透過 Cache-ControlETagLast-Modified 等 HTTP Header 控制快取策略。
快取是網站效能優化不可或缺的一環。

(2) 快取的優點

  • 提升網站載入速度與使用者體驗(UX)
  • 減少伺服器流量與資源使用
  • 改善技術性 SEO 表現(Google 將速度列為排名因素之一)

(3) 清除快取的好處

當前端版本更新後,舊快取若未更新會導致:

  • CSS 不更新、JS 不更新 的錯亂狀況
  • 使用者看到不完整或錯誤頁面
  • SEO 抓取舊版內容、影響新版本收錄

清除瀏覽器快取能:

  • 立即載入最新版本程式碼
  • 驗證部署是否成功
  • 確保開發與正式環境呈現一致

3.1 如何清除快取(各平台快速操作)

以下是最簡易、實用的「清除瀏覽器快取」操作方式,
幫助你快速驗證 CSS 或 JS 更新後的效果。


macOS

  • Safari:
    Safari > 偏好設定 > 進階 > 勾選「在選單列中顯示開發」 > 開發 > 清空快取。
  • Chrome:
    ⌘ + Shift + Delete → 勾選「快取的圖片和檔案」→ 清除資料。
  • Firefox:
    偏好設定 → 隱私與安全性 → 清除資料 → 勾選「快取的網頁內容」。
  • Microsoft Edge:
    ⌘ + Shift + Delete → 勾選「快取的影像與檔案」。
  • Internet Explorer(舊版本)
    設定齒輪圖示 → 安全性 → 刪除瀏覽歷程記錄。

Windows

  • Chrome(兩種方式)
    方法一:Ctrl + Shift + Delete(一般使用者)
    → 勾選「快取的圖片和檔案」→ 清除資料。
  • 方法二:F12 → 重新整理按鈕 → 清除快取並強制重新載入(開發者常用方式)
    → 能完全跳過快取、重新載入所有資源,適合前端開發測試。
  • Firefox:
    設定 → 隱私與安全性 → 清除資料 → 勾選「快取的網頁內容」。
  • Edge:
    Ctrl + Shift + Delete → 勾選「快取的影像與檔案」。
  • Internet Explorer(僅供參考)
    工具 → 安全性 → 刪除瀏覽歷程記錄。

iOS

  • Safari:
    設定 → Safari → 清除瀏覽紀錄與網站資料。
  • Chrome:
    ⋮ → 設定 → 隱私權 → 清除瀏覽資料 → 勾選「快取的圖片和檔案」。
  • LINE(內建瀏覽器):
    設定 → 聊天 → 清除快取資料。

Android

  • Chrome:
    ⋮ → 設定 → 隱私與安全性 → 清除瀏覽資料 → 勾選「快取的圖片和檔案」。
  • LINE(內建瀏覽器):
    設定 → 聊天 → 清除快取資料。
  • Samsung Internet:
    設定 → 隱私 → 刪除瀏覽資料 → 勾選「快取的圖片和檔案」。
  • Microsoft Edge:
    設定 → 隱私 → 清除瀏覽資料。

3.2 避免單一頁面受快取影響:使用版本號(Cache Busting)

即使清除快取,有時仍會出現 CSS 不更新、JS 不更新 的情況,
這是因為瀏覽器判定資源「未變動」,導致快取版本被重複使用。

💡 解決方式:在檔案連結後加上版本參數

這種技巧稱為 Cache Busting(破除快取)
你可以在修改過的檔案後方加入查詢參數,如 ?v=1.1,讓瀏覽器重新抓取最新資源。

JavaScript 範例

<!-- 修改前 -->
<script type="text/javascript" src="../masterpage.js"></script>

<!-- 修改後 -->
<script type="text/javascript" src="../masterpage.js?v=1.1"></script>

CSS 範例

<!-- 修改前 -->
<link rel="stylesheet" href="../masterpage.css">

<!-- 修改後 -->
<link rel="stylesheet" href="../masterpage.css?v=1.1">

圖片範例

<!-- 修改前 -->
<img src="../images/banner.jpg" alt="首頁橫幅">

<!-- 修改後 -->
<img src="../images/banner.jpg?v=1.1" alt="首頁橫幅">

為什麼這樣做有效?

  • 加上版本參數會讓瀏覽器視為新資源,強制重新下載。
  • 能有效解決「CSS 不更新」與「JS 不更新」的常見問題。
  • 是最簡單的前端快取管理技巧,適合快速測試與修正。

延伸建議

  • 若網站頻繁部署,可使用 Webpack、Vite 等工具自動生成 hash 或版本號。
  • 若僅偶爾修改,可手動更新 ?v=1.2?v=20251016

4. FAQ

Q1. 快取(Cache)和 Cookie 有什麼不同?
Cache 暫存網站資源(圖片、CSS、JS)以加快載入速度;
Cookie 則儲存使用者登入狀態、偏好設定與追蹤資訊。

Q2. 清快取會刪掉分頁或書籤嗎?
不會。分頁與書籤屬於瀏覽器書籤資料,不受快取清除影響。

Q3. 清快取會刪除儲存的密碼嗎?
不會,除非同時勾選「密碼」或「自動填入資料」。

Q4. 清除 LINE 快取會刪除聊天紀錄嗎?
不會。清除 LINE 快取只會移除暫存圖片、影片與檔案,不會刪除聊天內容。

Q5. 快取與 SEO 有什麼關係?
快取設定正確能提升網站速度與使用者體驗,進而提升 SEO 排名。
但若緩存時間過長或未正確更新,可能導致搜尋引擎收錄舊版本內容。

Post Comment