Apache-2.2

如果在 .htaccess 中使用 mod_expires 將被客戶端下載修改的文件

  • June 17, 2015

我正在嘗試使用記憶體來加快網站的響應時間。我讀過的大多數文件都建議將到期時間設置為從訪問時間開始 +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" />

引用自:https://serverfault.com/questions/699763