跳到主要内容

工具 04 · P1

Favicon 检查器

输入一个 URL,就能看到已覆盖的图标尺寸、哪些声明是坏的,以及每个文件背后的真实尺寸——包括那些看着对、其实不对的。

最多探测 8 个图标地址(经由 http://localhost:8080),并从文件字节里读出真实像素尺寸, 揪出声明与实际不符的尺寸。

怎么用

  1. 01

    粘贴页面 URL

    任何公开页面都行。检查器会读取该页面里的图标声明,然后逐一探测找到的每个地址,以及约定的默认路径。

  2. 02

    查看覆盖网格

    共检查七个档位:16、32、48、180(Apple touch)、192 和 512(PWA),再加一个矢量 SVG。每个格子都会链回满足它的文件。

  3. 03

    从上往下修

    先处理 error:站点完全没有可访问的图标是最糟的情况。接着再逐项解决缺失的尺寸和 manifest 警告。

最多 8 个图标地址经由 Go 服务探测,浏览器才能读取跨域响应头和字节。私有和保留地址会被拒绝。

常见问题

▸ 它到底检查什么?

它会抓取页面,提取每一条图标声明,然后逐一探测,外加 /favicon.ico、/apple-touch-icon.png 和 /apple-touch-icon-precomposed.png。对每个地址记录 HTTP 状态码、内容类型、字节大小,以及从文件字节里读出的真实像素尺寸。如果声明了 manifest,也会一并抓取解析。

▸ 为什么要读真实尺寸,而不是声明的 sizes 属性?

因为 sizes 属性是开发者手写的文本,经常是错的——文件名写着 icon-32x32.png,实际却是 512×512,或者 PNG 根本不是正方形。读取 PNG 的 IHDR 块或 ICO 的目录表才能得到真相,也就是浏览器实际会渲染的结果。

▸ 我已经声明了 PNG 图标,为什么还标出 /favicon.ico?

因为它是零配置的默认值。没有任何声明时,或者它们不解析 link 标签时,浏览器、feed 阅读器和各类爬虫都会请求 /favicon.ico。在根目录放一个多尺寸 ICO,只多一次很小的请求,却能消掉一整类图标损坏的反馈。

▸ 为什么我的站点检查失败了?

常见原因:域名解析到私有或保留地址而被刻意拦截、页面返回非 HTML 的内容类型、服务器响应超过超时时间,或站点用 403 拒绝未知爬虫。较慢的站点还会产生部分结果——未能及时响应的资源会标出原因。

▸ 我提交的 URL 会被存储吗?

不会。页面和最多 8 个图标地址只抓取一次,在内存中检查后丢弃,不写入磁盘,请求按 IP 限流。