Šime Vidas前几天在Twitter上给我发了关于subzey的这个主题的DM。我的favicons的HTML是这样的:
<!-- Warning! Typo! -->
<link rel="icon" href="/favicon.ico" size="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
属性size ,那里是个错字,应该是sizes 像这样:
<!-- Correcxt -->
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
这样一来,Chrome就不再重复下载两个图标,而是单独使用SVG(因为它应该)。只是要注意一些问题。我的ICO文件是5.8kb,所以现在每一次未缓存的页面加载都会节省5.8kb,这对我来说感觉非同小可。
Šime在《网络平台新闻》第42期中指出了这一点:
SVG图标是支持在所有的现代浏览器中,除了Safari浏览器。如果你的网站同时声明了ICO(回退)和SVG图标,请确保将 大小=任何 属性给ICO <链接以防止浏览器下载并使用ICO图标,而不是SVG图标(见Chrome的错误1162276获取更多信息)。CSS-Tricks是一个网站的例子,该网站的最佳图标标记在其*(三个*元素,分别为favicon.ico、favicon.svg和apple-touch-icon.png)。
这条关于CSS-Tricks的说明有点慷慨,因为它的正确性只是因为我的不正确被提前指出了。我认为我的错字的根源是Andrey的文章,但那已经被修正了。Andrey的文章仍然可能是最实用的favicon标记的最佳参考。