解决IE6从Nginx服务器下载图片不Cache的Bug
这篇讲的是一个典型的IE6兼容性坑——图片明明应该被缓存却总是重复下载,拖慢了页面加载。作者在实际项目中发现,Nginx服务器配置的缓存头在IE6下完全失效。 问题的根源在于IE6对HTTP头处理的特殊性。当Nginx返回带有 `Last-Modified` 和 `ETag` 的响应头时,IE6会错误地忽略后续请求中的 `If-Modified-Since` 和 `If-None-Match` 校验头,导致条件GET请求失效,每次都返回完整的200响应。 解决方案很巧妙:通过在Nginx配置中为特定的静态资源路径强制添加 `Expires` 和 `Cache-Control` 响应头。这样,IE6就会根据本地强缓存策略直接读取本地缓存,而不再依赖它处理有缺陷的协商缓存机制。修改后,实测在IE6下图片请求成功转为304状态,大幅减少了不必要的网络传输。 对于维护老旧系统或需要兼容IE6的场景,这个针对Nginx的配置调整方法直接有效,避免了深入浏览器黑盒的复杂排查。