为什么浏览器缓存无法与Cloudfront / S3 / CORS一起正常运行?

时间:2014-11-05 08:57:39

标签: cors amazon-cloudfront

我已正确启用Amazon Cloudfront上的CORS支持,以便我的静态图像可用作WebGL纹理。

然后我也通过javascript请求图片:

var image = new Image();
image.crossOrigin = 'Anonymous';
image.onload = function(){
    //Do stuff here
};
image.src = url;

但是,在通过CORS请求图像时,浏览器缓存似乎无法正常工作,至少与禁用它时的方式不同。

我的应用程序是一个非常重要的单页应用程序,所有请求/页面更改都是由ajax原则驱动的。禁用CORS后,如果浏览器已缓存图像,则浏览网站的速度非常快。按下前进/后退浏览器按钮会产生近乎瞬时的响应。

但是,启用CORS后,浏览器似乎总是联系服务器以获取每个图像。即使它们已经在浏览器缓存中。这些请求实际上并没有重新下载资产,但是每个请求的waiting时间(如Firebug的网络分析器中所示)非常明显,表明正在为每个请求检查和检查cloudfront,即使它们是在浏览器缓存中。

无论如何要修改它,以便我可以拥有与没有CORS请求图像时相同的浏览器缓存行为吗?

0 个答案:

没有答案