我正在开发的 Web 应用程序提供带有 /image?name=a.gif 之类的 URL 的图像。页面加载缓慢的部分原因是浏览器没有缓存图像。
即使 URL 中包含查询字符串,是否有任何 http 标头组合可以说服 IE 缓存图像?我试图避免浏览器发出任何不必要的请求(包括 if-modified-since 类型的请求)
我对仅适用于 IE (6+) 的解决方案感到满意。另外,我知道我可以通过 URL 重写来避免这个问题——我只是想更好地理解浏览器缓存。
谢谢
我正在开发的 Web 应用程序提供带有 /image?name=a.gif 之类的 URL 的图像。页面加载缓慢的部分原因是浏览器没有缓存图像。
即使 URL 中包含查询字符串,是否有任何 http 标头组合可以说服 IE 缓存图像?我试图避免浏览器发出任何不必要的请求(包括 if-modified-since 类型的请求)
我对仅适用于 IE (6+) 的解决方案感到满意。另外,我知道我可以通过 URL 重写来避免这个问题——我只是想更好地理解浏览器缓存。
谢谢
人们普遍认为,许多旧浏览器(包括 IE6)和一些旧版本的缓存(如 Squid)不会缓存任何附加了查询字符串的文件,无论过期日期如何。
查询字符串版本控制的更强大的替代方法是将版本控制信息放入路径中,例如:
site/static/23212903/css/bundle.css
或者:
site/images/logo.r23212903.png
有关更多信息,请参阅 Sergey Chernyshev 关于正确设置缓存标头的精彩文章。
将 Web 服务器中的expires 标头设置为某个遥远的日期。