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