Typecho 默认实用的是 gravatar 头像,由于特殊原因,gravatar 头像在国内无法直接显示,有网友向我抱怨说博客头像加载不出来,要我赶紧想想办法。
琢磨并测试了下,头像崩掉单纯是 Gravatar 服务在国内不好使的原因。因此只要使用国内的公共 CDN 服务,或是自己建一个,再替换掉 Typecho 程序中的原有链接,就能解决这个问题。
替换原有链接
在博客根目录 /var/Typecho/Common.php
中,使用 VSCODE 或是其他编辑器,快捷键 Ctrl+F
搜索 secure.gravatar.com
。Typecho 版本不同,位置可能会不一样,我的在 991 行左右。
$url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
$url .= '/avatar/';
搜索下可用的公共 CDN
把第一行里头的链接替换掉
$url = $isSecure ? 'https://sdn.geekzu.org/avatar/' : 'https://cdn.v2ex.com/gravatar/';
因为上面的 CDN 链接里已经带有 /avatar/
了,所以需要注释掉这一行,也可以把这行直接删掉。
//$url .= '/avatar/';
然后保存,刷新,一切恢复正常。
但是更新 Typecho 的时候覆盖了怎么办?还有一个方法,在博客根目录程序配置文件 config.inc.php
最后面插一段:
/**自定义头像源*/
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cdn.v2ex.com/gravatar/');
这个配置文件一般情况不会去动它,所以是最一劳永逸的方法,也推荐使用这个方法。