我正在嘗試使用快取來加快網站的回應時間。我讀過的大多數文件都建議將過期時間設定為從訪問時間起 +1 個月,如下所示:
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
我擔心如果我更新 css 文件,客戶端將無法取得更新的文件。
如果檔案被修改,是否可以確保客戶端下載新版本的檔案?
非常感謝任何幫助
答案1
您的擔憂是正確的 - 瀏覽器檢索到該文件的客戶端通常要到訪問該文件 1 個月後才會收到更新版本,除非他們碰巧清除了瀏覽器快取或在頁面上重新加載。
解決此問題的一種方法是,當您更新 CSS 文件時,將引用它的 HTML 更改為在連結標記的 href 屬性末尾(即在 .css 之後)添加 ?v=2 或 ?v=3 等。瀏覽器將其視為唯一的 URL,因此下載新副本,但它將指向伺服器上相同的實體 .css 檔案。
<link rel="stylesheet" type="text/css" href="/styles.css" />
變成
<link rel="stylesheet" type="text/css" href="/styles.css?v=2" />