使用查询字符串从URL缓存

Snu*_*ker 7 url internet-explorer caching query-string

我正在处理的Web应用程序使用/image?name=a.gif等URL提供图像.页面加载缓慢部分是因为浏览器没有缓存图像.

是否有任何组合的http标头会说服IE缓存图像,即使URL中有查询字符串?我试图避免浏览器发出任何不必要的请求(包括if-modified-since类型请求)

我很满意只适用于IE(6+)的解决方案.另外,我知道我可以通过URL重写来避免这个问题 - 我只是对更好地理解浏览器缓存感兴趣.

谢谢

Ale*_*ean 9

人们普遍认为,许多旧的浏览器(包括IE6)和一些旧版本的缓存(如Squid)都不会缓存任何附加了查询字符串的文件,无论过期日期如何.

查询字符串版本控制的更强大的替代方法是将版本信息放入路径中,例如:

site/static/23212903/css/bundle.css
Run Code Online (Sandbox Code Playgroud)

要么:

site/images/logo.r23212903.png
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅Sergey Chernyshev ,这是一篇关于正确设置缓存标头的文章.


Bjo*_*orn 4

将Web 服务器中的过期标头设置为某个较远的日期。

  • 就其价值而言,“Cache-Control: max-age=#”是 Expires 的新版本,但两者都可以工作。请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 (4认同)