我已正确启用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请求图像时相同的浏览器缓存行为吗?