由于Typecho的评论默认调用的是Gravatar的头像,从而导致每次打开网站,都会因为从国内到海外Gravatar服务器的蜗牛速度,而导致网页会加载老半天。这时候我们可以采取一些步骤,将网站的头像源转化成为国内的Gravatar服务器头像的镜像服务器,从而大幅度的改善网页加载性能。
具体修改方法:
打开网页根目录下的/var/Typecho/Common.php,找到public static function gravatarUrl()函数
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;
}
将其中的secure.gravatar.com
与www.gravatar.com
替换成国内的镜像域名即可。
通常使用的有七牛版:dn-qiniu-avatar.qbox.me
或者中科大版:gravatar.proxy.ustclug.org
极客族版:sdn.geekzu.org
V2EX版:cdn.v2ex.com/gravatar/
这四种都支持HTTPS
public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
$url = __TYPECHO_GRAVATAR_PREFIX__;
} else {
$url = $isSecure ? 'https://sdn.geekzu.org' : 'https://gravatar.proxy.ustclug.org';
$url .= '/avatar/';
}
if (!empty($mail)) {
$url .= md5(strtolower(trim($mail)));
}
$url .= '?s=' . $size;
$url .= '&r=' . $rating;
$url .= '&d=' . $default;
return $url;
}
另一种修改思路
我们也可以直接加入一条全局define语句将__TYPECHO_GRAVATAR_PREFIX__
改为国内CDN的url
在网站根目录下的config.inc.php
中加入下面这条规则即可。
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://sdn.geekzu.org');