头像用的最多的还是使用Gravatar头像,但是Gravatar头像服务器在国外,速度上肯定有影响,如果很快的缓存Gravatar头像呢?
网上大部分是本地缓存,然后通过本地化Gravatar头像缓存来加快速度。
但是这次我换一种方法,无需加重自己服务器的负担来加快,因为这里有免费的七牛,使用七牛的同步镜像功能,同步Gravatar头像网站,然后把所有Gravatar头像地址改成七牛的地址就可以了。
使用方法:
1、去七牛申请帐号。官网地址:http://www.qiniu.com
推广注册地址:https://portal.qiniu.com/signup?code=3lkin4af40swi (希望大家通过这个注册,让我多点空间,谢谢)
2、创建一个空间,七牛会分配一个2级域名,打开这个空间的“空间设置” --- “镜像存储”,填入Gravatar头像的官网地址(http://www.gravatar.com)
3、测试效果七牛缓存后头像效果
因为我使用的是emlog,Gravatar头像创建的连接一般是以下这种连接。
测试连接:http://www.gravatar.com/avatar/6016bea8a1116741c739ff17f8062776?s=40&d=mm&r=g
通过七牛绑定的域名(这边我已经绑定自己的域名了):http://avatar.myxzy.com/avatar/6016bea8a1116741c739ff17f8062776?s=40&d=mm&r=g
发现可以正常访问,但是头像的参数没了,直接跳转到 http://avatar.myxzy.com/avatar/6016bea8a1116741c739ff17f8062776
4、通过七牛的图片处理功能,自定义图片大小。
七牛后台“数据处理” --- “样式分隔符”,设置为“/”,然后“新建图片样式”。
样式名称自己设置,如“thum32”;“缩略方式”选择指定宽高缩放,设置宽高为32;“输出格式”和原图一致;“图片质量”可以自己选择,如100%。
设置好之后,测试http://avatar.myxzy.com/avatar/6016bea8a1116741c739ff17f8062776/thum32
这个已经可以输出指定大小的Gravatar头像,可以设置多个图片样式,但是最好不要大于宽高80px。
还有点问题:
1、不能输出其他参数的Gravatar头像;
2、用户更改了Gravatar头像不会自动更新七牛缓存中的Gravatar头像,需要自己手动更新。(可以一段时间后清空下这个同步空间的内容即可)
演示效果:你可以看看本站的Gravatar头像效果。
emlog的话,直接修改includelibfunction.base.php中
代码如下 | 复制代码 |
function getGravatar($email, $s = 40, $d = 'mm', $g = 'g') { $hash = md5($email); $avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g"; return $avatar; } 修改为 |