1

我正在使用.htaccess文件來設置網站的標題。我想知道如何將文件緩存設置爲在對它們進行修改後過期。這可能嗎?如何設置緩存在修改後過期?

即將這項工作?

ExpiresDefault "modification" 

換句話說,我希望緩存保持到文件從服務器修改爲止。

回答

0

我認爲你對expires標題有錯誤的想法。 expires頭文件告訴接收方本地緩存文件多長時間。在這段時間之後,接收機必須重新請求資源。如果服務器說資源將在一小時後過期,但資源稍後會更改。這將需要另外59分鐘,直到接收器將獲取這個修改後的版本。服務器無法通知接收方資源已過期過期。

+0

過期修改本質上與需要的相反。需要它來設置'過期'標題以查看緩存文件最後修改的時間 – user734063 2014-05-06 00:17:44

1

過期修改會將緩存設置爲在文件的最後修改後的某個時間過期。即使您的文件在設置的緩存時間限制內再次被修改,已經緩存文件的客戶端也不會尋找新版本。 Apache Expiration包含有關過期模塊的信息。

下面是一個例子:

#BEGIN Cache-Control Headers 
<ifModule mod_headers.c> 
    <filesMatch "\.(css|js)$"> 
     ExpiresDefault "modification plus 4 weeks" 
    </filesMatch> 
</ifModule> 
# END Cache-Control Headers 

如果你的CSS文件1周前修改,緩存將在3周內,而不是4

那麼到期,你如何讓你的新修改的CSS文件在文件已被緩存後顯示?

如果您修改您的css文件,更改將而不是顯示在緩存的瀏覽器中,直到緩存過期。解決此問題的一種方法是更改​​緩存的css文件的名稱。 (示例重命名main1.css - > main2.css)

相關問題