2011-05-18 24 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標頭的最大年齡指令的設定。截止日期可以設置爲相對於源文件上次修改時間或客戶端訪問時間。