[英]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.