2011-05-18 57 views
9

我想使用下面的base64 favicon和一些base64图像。我的浏览器缓存从数据网址的favicons

<link href="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAA..AMAK3WxwAOWT0AK4RgAKHOvQA4hWUAP4lqAD2MagBQm3kATKSBAECcdP//AAD8/wAA+H8AAPA/AADwPwAA4B8AAMAPAACABwAAAgMAAI8BAADfgAAA/8AAAP/AAAD/4QAA//MAAP//AAA=" rel="icon" type="image/x-icon" /> 

这些会被我的浏览器缓存吗?

回答

10

不可以。数据URI不会分别从其包含的文档(例如CSS或HTML文件)中缓存,因此每次包含文档被重新下载时都会下载数据。

Source

4

Caching your site's favicon实际上是推荐的性能最佳实践加快您的网站。例如,Google不会浪费额外的宝贵字节,在其主页的源代码中包含favicon(使用<link />或Data URI)。

取而代之的是,它们服务于their favicon,并且在将来会有一个HTTP标头。 Cache-Control: private, max-age=31536000(31,536,000秒= 365天)。

如果您有兴趣控制网站图标的“新鲜度”,可以使用缓存控制和HTTP标头—,例如,如果您打算更改图标或不希望它被缓存,你可以相应地调整它。

使用Apache and mod_expires一个例子:

<IfModule mod_expires.c> 
    # Add Expires Header 
    # http://www.askapache.com/?p=152 

    ExpiresActive On 
    ExpiresByType image/x-icon "access plus 1 month" 
</IfModule> 

该模块控制所述过期HTTP报头和在服务器响应的缓存控制HTTP标头的最大年龄指令的设定。截止日期可以设置为相对于源文件上次修改时间或客户端访问时间。