根本原因是phpMyAdmin 5.0+默认通过CDN加载FontAwesome字体,国内网络常拦截或超时导致woff2请求失败,浏览器fallback为系统字体而显示方块;需禁用CDN($cfg['FontAwesome'] = false)、确认本地fonts/目录含woff2文件、配置正确MIME类型并清除浏览器缓存。
为什么启用CDN后FontAwesome图标变方块?
根本原因是 phpmyadmin 5.0+ 默认通过 cdn 加载 fontawesome-webfont.woff2,而国内网络常拦截或超时该请求,导致浏览器 fallback 到系统字体,把 unicode 图标码点当普通字符渲染成方块。这不是主题失效,而是字体加载链在 cdn 环节断了。
如何确认是 CDN 字体加载失败?
打开浏览器开发者工具 → Network 面板 → 过滤 Font 类型 → 刷新页面:
- 若
fontawesome-webfont.woff2状态为403、404或空白预览,说明服务端 MIME 类型未配或文件缺失 - 若状态为
200但预览区为空,大概率是 CDN 返回了 HTML 错误页(如 404 页面)而非二进制字体 - 若状态为
pending或超时,基本可判定是 CDN 被拦截或 DNS 解析失败
禁用 CDN 并启用本地字体的实操步骤
直接修改 config.inc.php,不依赖任何插件或额外路径:
- 找到或添加这一行:
$cfg['FontAwesome'] = false;—— 强制禁用 CDN 加载逻辑 - 确认
themes/your-theme/fonts/下存在fontawesome-webfont.woff2(不是 .ttf 或 .eot) - Apache 用户:在虚拟主机配置中加入
AddType font/woff2 .woff2 - Nginx 用户:在
http或server块的types段里加font/woff2 woff2; - 检查 Web 服务器是否拒绝访问
/phpmyadmin/themes/xxx/fonts/—— Nginx 常见于location /themes/ { deny all; }规则
容易被忽略的缓存与路径细节
即使改完配置,图标仍不显示,大概率卡在这几个地方:
- Firefox 会静默缓存失败的字体请求,即使服务端已修复,它仍 fallback;必须勾选 Network 面板的
Disable cache再刷新 -
$cfg['ThemePath']若写成'themes'(无前导./),Nginx/Apache 可能因路径解析差异找不到fonts/子目录,应改为'./themes' - 部分主题(如
pmahomme)导航栏图标混合使用img/下 PNG 文件,需手动验证/phpmyadmin/themes/pmahomme/img/icn_edit.png是否返回图片,而非 404
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











