Apache-2.2
如果在 .htaccess 中使用 mod_expires 將被客戶端下載修改的文件
我正在嘗試使用記憶體來加快網站的響應時間。我讀過的大多數文件都建議將到期時間設置為從訪問時間開始 +1 個月,如下所示:
ExpiresActive On ExpiresByType text/css "access plus 1 month"
我擔心如果我更新一個 css 文件,客戶端將不會獲得更新的文件。
如果修改了文件,是否可以確保客戶端下載新版本的文件?
非常感謝任何幫助
您的擔心是正確的 - 瀏覽器已檢索文件的客戶端通常要到訪問該文件後 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" />