一个简单的HTML代码:
问题:在 Chrome (最新的 win/mac 版本) 返回和前进到这个 HTML 页面时,不重新验证地址
我尝试了使用 302 和 303 重定向(RFC 中 303 要求浏览器绝不能缓存),在 IE、FireFox、Opera 上都完美刷新了
我甚至在 Chrome 中使用了开发者工具,网络日志中似乎没有显示任何尝试(缓存或非缓存)获取
我知道一个简单直接的解决办法,就是将查询字符串放在图像源中:
但我不喜欢/不能使用那样的hack。还有其他选项吗?
<img src="http://someaddr/image.php">
image.php是一个脚本,返回一个随机的重定向到一个带有所有必要无缓存标头的静态图像:
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
Location: http://someaddr/random_image_12345.jpg
问题:在 Chrome (最新的 win/mac 版本) 返回和前进到这个 HTML 页面时,不重新验证地址
http://someaddr/image.php
。我尝试了使用 302 和 303 重定向(RFC 中 303 要求浏览器绝不能缓存),在 IE、FireFox、Opera 上都完美刷新了
http://someaddr/image.php
,但是 Chrome 没有。我甚至在 Chrome 中使用了开发者工具,网络日志中似乎没有显示任何尝试(缓存或非缓存)获取
http://someaddr/image.php
的记录。网络日志只显示了已经连接到 http://someaddr/random_image_12345.jpg
(被缓存)。为什么会出现这种问题呢……我知道一个简单直接的解决办法,就是将查询字符串放在图像源中:
<img src="http://someaddr/image.php?refresh={any random number or timestamp}">
但我不喜欢/不能使用那样的hack。还有其他选项吗?
Expires: -1
吗?同时在 pragma 中添加no-store
。 - aldo.roman.nurenano-store
而不是no-cache
可以解决问题。 你可以看一下这个链接:https://dev59.com/nm855IYBdhLWcg3wyniC - aldo.roman.nurena