# 网页字体在旧浏览器里变成默认宋体，该从哪几层核对WOF…

- Link: https://www.itor.cn/1025.html
- Published: 2026-11-01T00:07:30+08:00
- Author: it

同一批字体文件上传后，新版浏览器显示正常，部分旧浏览器却整段变成默认宋体，标题字
重也一并消失。很多人第一反应是文件损坏，重新上传一遍，结果依旧。实际上，这类问题
往往与字体文件本身无关，症结在于格式回退链没有接上：浏览器不认识WOFF2，又没有可用
的后备格式，只能静默退回系统默认字体。

第一层要核对字体格式与浏览器的支持范围。WOFF2压缩率高、加载快，但支持起点比WOFF和
TTF晚，一些仍在使用的旧版浏览器只认WOFF或TTF。因此字体文件不能只准备一份WOFF2，而
应同时提供WOFF作为后备，必要时再补TTF。定位问题时不要靠猜浏览器版本，更稳妥的做法
是用特性检测判断当前环境是否支持WOFF2，再决定加载哪一份文件，这样结论可复现，也便于
后续排查。

第二层要核对CSS中@font-face的声明写法。常见错误有三种：src列表里把WOFF2写在最后，
浏览器先命中前面的格式，等于白做优化；格式提示format缺失或写错，浏览器无法识别该
条声明；以及把本地字体名放在列表最前，用户机器上恰好有同名字体时，网页字体根本不会
下载。正确的顺序是把WOFF2放在首位并标注格式，WOFF紧随其后，让浏览器按能力逐条匹配。

第三层要核对服务器响应头与跨域设置。字体文件受同源策略约束，跨域加载时如果响应头
缺少相应的许可信息，浏览器会拒绝使用该字体，而且多数情况下不报明显错误，只是静默
回退。排查时打开网络面板，看字体请求的状态码是否为正常返回，响应头里是否带有跨域
许可，内容类型是否为字体类型。状态码异常或被拦截，说明问题在服务端配置，不在样式
表。

第四层要核对缓存与CDN分发。旧缓存可能让新上传的字体迟迟不生效，表现为部分用户已更新、
部分用户仍是旧样式。判断方法是比对文件的实际响应内容与本地文件是否一致，必要时清理
缓存后复测。长期做法是给字体文件名加上版本标识，每次更新换新文件名，避免缓存与分发
节点继续返回旧文件。

把以上环节串起来，可以得到一份简短的检查清单：一看文件，是否备齐WOFF2与WOFF；二看
声明，src顺序与格式提示是否正确；三看响应，状态码、内容类型与跨域许可是否到位；四
看缓存，分发内容是否与最新文件一致。按文件、声明、响应、缓存的顺序逐项确认，绝大
多数回退失效都能定位到具体一层。

字体回退属于典型的隐性故障，页面不报错，用户却看得见差异。把它纳入上线前的多浏览
器抽查，比上线后被动返工更省事。it数运在网站维护中通常把这类检查前置到测试环节，
先确认回退链完整，再交付使用，减少后续反复沟通的成本。
