Typecho 修改默认 Gravatar 头像源为国内加速节点,主要通过修改核心文件 var/Typecho/Common.php 中的 gravatarUrl 函数,或在 config.inc.php 中定义__TYPECHO_GRAVATAR_PREFIX__常量实现。适用场景为国内访客访问博客时头像加载缓慢或失败,风险在于第三方镜像源可能随时间失效,需定期检查可用性。
先说结论:优先推荐在 config.inc.php 中定义常量方式,升级 Typecho 核心后不易丢失配置,若主题支持则在主题设置中修改更安全。
- 适合:Typecho 博客管理员,面临 Gravatar 官方源加载超时或缓慢场景。
- 先看:确认当前主题是否内置头像加速选项,避免重复修改代码。
- 建议:选用多个镜像源备选,如极客族、V2EX 或 Cravatar,防止单点失效。
快速处理思路
修改操作主要涉及两处代码位置,根据维护便利性选择其中一种即可。
方法一:在站点根目录 config.inc.php 文件最前面添加以下代码,指定镜像前缀。
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://sdn.geekzu.org/avatar/');方法二:修改 var/Typecho/Common.php 文件,找到 gravatarUrl 函数,替换默认 URL 地址。
$url = $isSecure ? 'https://sdn.geekzu.org/avatar/' : 'http://sdn.geekzu.org/avatar/';常用国内镜像源地址包括 https://sdn.geekzu.org/avatar/、https://cdn.v2ex.com/gravatar/、https://gravatar.loli.net/avatar/ 。
为什么会这样
Gravatar 官方服务器位于境外,国内网络环境访问时常出现连接超时或响应缓慢。
Typecho 默认调用 Gravatar 官方接口获取头像,未针对国内网络优化。第三方镜像源通过国内 CDN 节点缓存头像数据,缩短物理距离,提升加载速度。部分主题如 Handsome、Kratos 内置了加速设置,本质也是调用这些镜像接口。
分步处理
操作前请备份网站文件,防止代码错误导致站点无法访问。
第一步:检查主题设置。登录 Typecho 后台,进入外观或主题设置页面,查找是否有 Gravatar 镜像源选项,若有直接填写镜像地址保存即可。
第二步:若主题无设置,选择 config.inc.php 方案。使用 FTP 或文件管理器打开站点根目录 config.inc.php,在<?php 后第一行加入 define 代码。
第三步:若需修改核心文件,打开 var/Typecho/Common.php。搜索 gravatarUrl 函数,定位到 URL 赋值行,将官方域名替换为国内镜像域名,注意保留/avatar/路径后缀。
第四步:保存文件并清除浏览器缓存。若使用 CDN 加速插件,同步清除 CDN 缓存。
怎么验证是否生效
通过浏览器开发者工具网络面板确认头像请求域名是否变更为国内镜像。
打开博客任意包含评论的页面,按 F12 打开开发者工具,切换至 Network 标签。刷新页面,筛选 img 请求,查看 Gravatar 头像请求的 URL 域名。若域名显示为 sdn.geekzu.org 或 cdn.v2ex.com 等非 gravatar.com 域名,即表示修改生效。
常见坑
部分主题会覆盖核心函数,导致修改 Common.php 无效。
某些主题在 libs/Utils.php 或 functions.php 中重写了头像获取逻辑,此时需修改主题文件而非核心文件。混合内容风险需注意,若站点启用 HTTPS,镜像源地址也必须使用 HTTPS 协议,否则浏览器会拦截不安全内容。镜像源稳定性不可控,公开资料中没有看到可靠的量化数据表明某个源永久可用,建议保留随时切换的准备。
常见问题
修改后后台头像依然加载慢怎么办
后台头像调用逻辑可能独立于前台,需检查是否同时修改了 Widget/Base/Users.php 中的相关函数。
QQ 邮箱头像能否正常显示
可以,国内镜像源通常兼容 QQ 邮箱哈希值,Cravatar 等源还专门优化了 QQ 头像调用。
镜像源失效了如何快速切换
若使用 config.inc.php 定义方式,直接修改该文件中的 URL 地址即可,无需改动核心代码。
参考来源
- Typecho 使用镜像源对头像进行加速 - 知识库记录
- Typecho 更换 Gravatar 国内源,解决 Gravatar 头像无法加载 - 知识库记录
- Typecho 修改 Gravata 头像源 - 知识库记录
- 国内 Gravatar 头像的完美替代方案 Cravatar - 知识库记录