11

我想使用以下 base64 favicon 和一些 base64 图像。

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

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

4

2 回答 2

11

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

来源

于 2011-05-18T14:11:42.500 回答
5

缓存站点的图标实际上被推荐为加速您的网站的性能最佳实践。

例如,Google 不会浪费额外的宝贵字节在其主页的源代码中包含网站图标(使用 a<link />或数据 URI)。

取而代之的是,他们为他们的网站图标提供了一个设置在很远的未来的 HTTP 标头。Cache-Control: private, max-age=31536000(31,536,000 秒 = 365 天)。

如果您对控制站点图标的“新鲜度”感兴趣,您可以使用 Cache-Control 和 HTTP 标头 - 例如,如果您计划更改图标或不希望它被缓存,您可以调整它因此。

使用Apache 和 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>

此模块控制服务器响应中的 Expires HTTP 标头和 Cache-Control HTTP 标头的 max-age 指令的设置。到期日期可以设置为相对于源文件最后一次修改的时间,或者相对于客户端访问的时间。

于 2011-05-18T15:08:45.383 回答