2013-02-22 61 views
1

我在.htaccess中爲瀏覽器設置了一個CacheControl聲明來緩存靜態文件。如何使靜態文件上的HTTP緩存頭失效

在連續部署時,如何定義一條指令來使客戶端的緩存失效?

<Files *.js> 
Header add "Cache-Control" "max-age=604800" 
</Files> 

回答

0

我如何定義無效客戶端的緩存的指令?

簡短的回答是,你不能 - HTTP協議不支持它。

但有一種偷偷摸摸的方式來做到這一點:創建一個清單html頁面,列出所有可緩存的資產,將其加載到iframe中,然後使用Javascript對iframe進行刷新。這將爲服務器創建內容的條件請求 - 並且如果您的服務器響應2xx狀態,則提供的新內容將覆蓋緩存。

然而,僅僅因爲它的可能不會讓它成爲一個好主意(很多原因 - 除非你想支付我來提供諮詢和培訓幾個星期,否則不要問); 不要在家裏試試!

普遍的共識是,管理緩存的最佳方式是爲達到內容與非常長TTL但embed versioning information in the URL