Reference
rel="shortcut icon" 的含义
rel="shortcut icon" 是一种可追溯到 Internet Explorer 的老式 favicon 声明方式。"shortcut" 关键字是非标准的、会被浏览器忽略(真正被认可的只有 "icon"),所以一个朴素的 rel="icon" 做的是完全相同的事。现有标签仍然有效,但在新的标记里没有理由再写 "shortcut icon"。
它从哪里来
早期的 Internet Explorer 只有在 link 写成 rel="shortcut icon" 时才认得 favicon。其他浏览器从不需要 "shortcut" 那部分。HTML 规范定义的是 "icon" 关键字,而不是 "shortcut icon"。
浏览器把 rel 值当作一个以空格分隔的关键字列表,并匹配它认得的那些。在 "shortcut icon" 里它找到 "icon" 并使用,同时悄悄忽略 "shortcut"。所以标签能用,但多出来的那个词什么也没做。
遗留写法对比现代写法
<!-- legacy, still works but redundant -->
<link rel="shortcut icon" href="/favicon.ico" />
<!-- modern equivalent -->
<link rel="icon" href="/favicon.ico" sizes="any" />"shortcut icon" 常见问题
shortcut icon 被弃用了吗?
"shortcut" 关键字从来就不是标准的一部分,所以没有什么正式的东西可弃用,但它在实践中已经过时。现代的建议是单独使用 rel="icon"。
rel="shortcut icon" 现在还能用吗?
能。浏览器会匹配其中的 "icon" 关键字并使用那个文件,忽略 "shortcut"。favicon 会像用朴素的 rel="icon" 一样正常加载。
"shortcut icon" 和 "icon" 有什么区别?
在效果上没有区别。"icon" 是标准关键字;"shortcut icon" 就是同一个关键字前面多带了一个多余的遗留词。