簡體   English   中英

使用mod_headers或mod_expires使圖像不可緩存

[英]Make images non-cacheable using mod_headers or mod_expires

我的問題與前段時間討論的一篇帖子有關: 如何清除或替換緩存的圖像

讓我介紹一下我在做什么...我使用JavaScript創建一個動畫,該動畫每5分鍾更新一次。 我使用在圖像名稱上添加時間戳的技巧,所以我的圖像就像:image-1-no-cache.png?d = 131415135135

我用它來確保更新。 如果我不區分名稱,瀏覽器將不會更新任何內容,因為圖像將存儲在緩存中,並且瀏覽器不會意識到它們已更改。 我的問題是圖像是連續存儲的。 我通過JavaScript丟失了引用,但我不知道如何刪除它們。 幾個小時后,緩存中充滿了圖像,該網站占用了大量RAM。

我現在想做的是為圖像設置有效期。 我啟用了模塊mod_headers和mod_expires,並嘗試不同的方式更改了.htaccess文件:

<Files ~ ".*no-cache\.png?=*">
   Header set Cache-control "no-cache"
</Files>

要么

<FilesMatch ".*no-cache.png.*">
     ExpiresActive On      
   ExpiresDefault A300
</FilesMatch>

什么都沒有。 這個想法是使文件-no-cache.png?=。 不可緩存。 為什么我沒有取得好成績? 我想念什么?

這是第一次嘗試做類似的事情,我很困惑。 任何幫助將不勝感激。 謝謝 !

添加?something到圖像讓它不可緩存。 它創建了可以緩存的 URL,並且不會影響其他URL,因此所有其他?versions保留在緩存中。

<Files ~ "no-cache\.png">
   Header set Cache-control "max-age=10, must-revalidate"
</Files>

這將告訴Apache將標頭添加到文件名中任何位置具有no-cache.png所有文件中( no-cache.png .* )。 AFAIK會匹配文件系統名稱,而不是URL,因此查詢字符串將永遠不會存在)。

標頭表示最多可緩存10秒,並在每次使用前與服務器檢查新鮮度。

這行不通!

使用您的配置,瀏覽器應在10秒后重新驗證(=更新)映像,並且不會發生這種情況。

我認為最好的選擇是設置“ Header set Cache-Control“ no-store”“。 如果我在JavaScript Image數組中引用了所有圖像,則不需要使用緩存。 目前,這是我找到的最佳選擇。

謝謝你允

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM