现代浏览器严格校验rel="icon"的type、sizes和服务器Content-Type:.ico需type="image/x-icon"且sizes可省略,.png必须配type="image/png"和精确sizes="32x32"(小写x),.svg仅Chrome 110+支持且Safari不兼容;路径须绝对,文件须真实可访问并返回200状态码与匹配MIME类型;多个图标仅加载首个合法项,iOS和PWA需单独配置。

直接在 HTML 的 里写 标签,但必须配对 type 和 sizes、用绝对路径、确保服务器返回正确 Content-Type,否则现代浏览器会静默忽略。
type 和 sizes 必须严格匹配文件格式
浏览器不是“尽量加载”,而是逐项校验:
-
.ico 文件:用
type="image/x-icon",sizes属性可省略(.ico 自带多尺寸) -
.png 文件:必须同时写
type="image/png"和sizes="32x32"(注意是英文小写 x,不是 × 或 px) -
.svg 文件:Chrome 110+ 要求声明
type="image/svg+xml",但 Safari 完全不支持作 favicon,不能依赖
路径必须绝对,文件必须真实可访问
相对路径在子页面下极易 404,浏览器不会自动 fallback 到根目录找 /favicon.ico —— 除非你根本没写任何 <link rel="icon">:
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
- ✅ 正确:
href="/favicon-32x32.png"(文件放在网站根目录) - ❌ 错误:
href="assets/icon.png"(当页面是/blog/post.html时,会请求/blog/assets/icon.png) - 验证方式:直接在浏览器地址栏打开
https://yoursite.com/favicon-32x32.png,必须返回 200 状态码 + 正确 MIME 类型
多个图标只取第一个合法项
浏览器按 HTML 中出现顺序加载,只认第一个能成功获取且通过校验的 <link rel="icon">,后面的完全跳过:
- 推荐把最兼容的放最前:
<link rel="icon" type="image/x-icon" href="/favicon.ico"> - 高清 PNG 放后面:
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> - 不要混写
rel="shortcut icon",现代浏览器已废弃,写了无效还可能触发重复请求
iOS 和 PWA 图标要单独处理
rel="icon" 只管标签页图标,主屏幕、PWA 安装横幅、Windows 钉选等场景不走这条路:
- iOS 需额外加:
<link rel="apple-touch-icon" href="/apple-touch-icon.png"> - PWA 需配置
manifest.json,并在 HTML 中引入:<link rel="manifest" href="/manifest.json"> - Windows 系统磁贴要用:
<meta name="msapplication-TileImage" content="/tile.png">
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










