数据URI和缓存

ste*_*och 14 css data-uri

我在维基百科上看到这个:

数据URI不是单独缓存其包含的文档(例如CSS或HTML文件),因此每次重载时都会下载包含文档的数据.

这是否意味着每次刷新页面或用户点击导航链接时都会下载我的代码?我该怎么做才能缓存数据-uri?

ps - 我只是在谈论20个左右的小png文件(大多数是丝绸图标,但也有2*16KB文件)

Bol*_*ock 16

数据URI只不过是Base64编码的二进制数据形式的文本,它嵌入在HTML和CSS文件中.所以,是的,每次请求它们时都会将它们作为HTML和CSS文件的一部分下载,除非这些文件本身是高速缓存的.

如果您将数据URI仅保留在样式表中并发送正确的缓存标头,那么将data:图像与CSS一起缓存不会产生问题.

  • @sysockit是对的.@stephenmurdoch,在你的资产上所有base64之前,请考虑我的[避免数据URI](http://frontend.co.il/avoid-data-uris-en/)文章:-)实质上,当你分开你的编码通过上下文图像到专用的css文件与IE的MHTML后备,你最终得到臃肿,难以维护的精灵. (2认同)
  • @Ronny有一篇很棒的文章,但看起来网址已经改变了.我通过谷歌http://frontend.co.il/articles/avoid-data-uris-english找到了它 (2认同)