为什么 Chrome 同时请求 .svg 和 .ico 图标?

Why does Chrome request both .svg AND .ico favicons?

截至 2020 年 9 月,大多数现代浏览器都支持 .svg 图标。请参阅:https://caniuse.com/link-icon-svg

但是,为了支持旧版浏览器,除了 .svg 图标外,我的站点还提供 .ico 图标,在 <head> 中有以下 html 链接:

<link rel="icon" type="image/x-icon" href="images/favicon.ico">
<link rel="icon" type="image/svg+xml" href="images/favicon.svg">

这在支持 .svg favicon 的浏览器适当地使用 .svg favicon 而浏览器不使用 .ico favicon 的情况下按预期工作。我不明白的是为什么 支持 .svg favicons(如 Chrome)的浏览器也请求 .ico favicon?请参阅下面的 Chrome 瀑布:

DevTools Network Tab

如果 Chrome 已经成功下载了 .svg 图标,为什么还要继续请求 .ico 图标?不应该 Chrome 智能地 select 只加载一种 favicon 类型而不强制客户端下载不必要的资源吗?有没有办法指示 Chrome 只下载 .svg 图标?

我遇到了同样的问题。为我解决的是将 sizes="16x16" 添加到 link 标签。 这是我的完整代码:

<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="alternate icon" sizes="16x16" href="/favicon.ico">

现在 Chrome 和 FF 将选择 svg 图标,而我仍然有旧浏览器的后备。

最近有一个post by CSS-Tricks强调了当前的解决方案

<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">

需要为 Chrome due to bug 1162276.

防止第二个