目前我正在将它们进行Base64编码并使用数据URI。这个想法是这样做可以降低浏览器需要发出的请求数量。这种方法可行吗?
一般来说,什么是提供图像的最佳方式?是从数据库、文件系统还是S3中获取?
我最感兴趣的是基于Python和Java的答案,但所有答案都受欢迎!
目前我正在将它们进行Base64编码并使用数据URI。这个想法是这样做可以降低浏览器需要发出的请求数量。这种方法可行吗?
一般来说,什么是提供图像的最佳方式?是从数据库、文件系统还是S3中获取?
我最感兴趣的是基于Python和Java的答案,但所有答案都受欢迎!
我肯定会看一下CSS图像精灵,这里有些不错的介绍:这里 和 这里.
概念非常简单,将您的图像合并到一个文件中,仅作为CSS背景显示所需部分。这样可以将许多图像的HTTP请求数量降低到一个或多个(将小图像根据适当的规则分组到精灵地图中),并减少需要维护的图像数量,CSS 中只有一些背景坐标。
此外,与任何静态资源一样,确保设置正确的缓存头信息,以使客户端不必要地获取它。
Nicholas C. Zakas编写了一个工具, 使在css中使用data URI更加容易,同时还包含了一个IE6/7兼容修复:
CSSEmbed还支持MHTML模式,以使使用内部图像的与data URI类似的样式表兼容于IE6和IE7。
数据 URL 肯定会减少对服务器的请求次数,因为浏览器不必在单独的请求中请求像素。但是并非所有浏览器都支持它们。您必须做出权衡。