Gravatar(Globally Recognized Avatar)是一项用于提供在全球范围内使用的头像服务。只要在 Gravatar 的服务器上上传了自己的头像,便可以在其他任何支持 Gravatar 的博客、论坛等地方使用它。(Wikipedia)
由于某种奇妙的原因,现时 Gravatar 官方服务器在国内已被封锁,方式为 DNS 污染。按默认配置会严重影响网站的访问体验。所以建议修改 Gravatar 源为国内源。
替换 Gravatar 源
全局 Gravatar 源有以下两种修改方法:
宏定义设置
打开网站根目录下的 config.inc.php
,添加如下宏定义:
/** 更换 Gravatar 源 */
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://dn-qiniu-avatar.qbox.me/avatar/');
修改实现函数
打开网站目录下的 ./var/Typecho/Common.php
,可以看到头像地址拼接实现方式如下:
public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
$url = __TYPECHO_GRAVATAR_PREFIX__;
} else {
$url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
$url .= '/avatar/';
}
if (!empty($mail)) {
$url .= md5(strtolower(trim($mail)));
}
$url .= '?s=' . $size;
$url .= '&r=' . $rating;
$url .= '&d=' . $default;
return $url;
}
将两个 gravatar.com 的地址换为国内源链接即可,注意链接拼接的格式。
Gravatar 国内源
发文时可用的国内源地址:
http://dn-qiniu-avatar.qbox.me/avatar
https://gravatar.loli.net/avatar
https://dn-qiniu-avatar.qbox.me/avatar
本博客使用的是七牛云的源,响应速度较快,但是由于缓存可能显示的是之前的头像。
Handsome 主题修改 Gravatar 源
自定义主题需要修改在主题中使用的 Gravatar 源,Handsome 主题可在后台外观设置“评论设置 -> 默认gravatar头像”中修改评论的默认头像;在“速度优化 -> gravatar镜像源地址”中设置 Gravatar 镜像源。
QQ 邮箱解析头像
由于国内 Gravatar 未得到广泛使用,大多邮箱没有对应头像,很多博客采用 QQ 邮箱解析 QQ 头像的方式。具体实现方法其他博客有很多相关内容,我尝试使用了一下发现其实现方式为拼接如下 URL:
https://q2.qlogo.cn/g?b=qq&nk=xxx&s=100
其中 xxx
为明文传输的 QQ 号码,100
为图像尺寸(支持40,100,640等)。若使用此种方式,只需查看头像的 URL 便可得知发布者 QQ,不利于隐私保护,故本站没有采用这种方案。