如何防止缓存图像?
How do I prevent caching an image?
我有一个使用 .htaccess
文件的虚拟随机图像:
# .htaccess
<Files random.jpg>
RewriteEngine On
RewriteRule ^(.+)$ /random-image.php [QSA,L]
</Files>
和以下 PHP:
<?php
// random-image.php
$images=glob("images/*.jpg");
$image=imagecreatefromjpeg($images[array_rand($images)]);
header('Content-Type: image/jpeg');
imagejpeg($image);
?>
并在 HTML 中:
<img src="random.jpg">
这很好用,但是浏览器有一个讨厌的缓存图像的习惯,所以我总是得到相同的图像而不是新图像。
我知道我可以使用 JavaScript 将随机查询字符串附加到 src
属性的末尾,但这并不总是一个选项。
有没有办法在 PHP 文件或 .htaccess
文件中添加额外的 headers,告诉浏览器不要缓存图像并始终从服务器?
只需将此内部标记放入您的 .htaccess 文件中
Header set Cache-Control "max-age=0"
我有一个使用 .htaccess
文件的虚拟随机图像:
# .htaccess
<Files random.jpg>
RewriteEngine On
RewriteRule ^(.+)$ /random-image.php [QSA,L]
</Files>
和以下 PHP:
<?php
// random-image.php
$images=glob("images/*.jpg");
$image=imagecreatefromjpeg($images[array_rand($images)]);
header('Content-Type: image/jpeg');
imagejpeg($image);
?>
并在 HTML 中:
<img src="random.jpg">
这很好用,但是浏览器有一个讨厌的缓存图像的习惯,所以我总是得到相同的图像而不是新图像。
我知道我可以使用 JavaScript 将随机查询字符串附加到 src
属性的末尾,但这并不总是一个选项。
有没有办法在 PHP 文件或 .htaccess
文件中添加额外的 headers,告诉浏览器不要缓存图像并始终从服务器?
只需将此内部标记放入您的 .htaccess 文件中
Header set Cache-Control "max-age=0"