如果我使用 CDN 在图像较多的页面上传送图像,并且我使用一组指向同一 CDN 域的 CNAME 记录以加快加载速度,图像是否会从当从另一个别名提供服务时,在浏览器缓存中找到一个别名?
更简单地说,如果 cdn1.example.com 和 cdn2.example.com 指向同一个域,当随后从 cdn2 调用时,浏览器是否足够智能以从缓存中加载来自 cdn1.example.com 的图像。 example.com?
我的理解是这种情况会奏效。
谢谢!
最佳答案
不,它不会起作用。浏览器根据 URL 缓存资源。如果 URL 不同,则缓存不起作用。
参见 "Serve resources from a consistent URL" in Page Speed's recommendations .
您应该为每个图像使用相同的域分片。根据您的后端技术,实现一个简单的函数,根据图像名称计算域名。一个简单的解决方案是 hashcode(imageName) % n
,其中 n 是域分片的数量。这样,您就不必记住哪个图像属于哪个域桶。
关于http - 对别名域的请求是否会被浏览器缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784797/