Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 解决CDN头像更新不及时问题

[复制链接]
疆飞 发表于 2016-11-7 17:48:03 | 显示全部楼层 |阅读模式
本帖最后由 疆飞 于 2016-11-12 13:19 编辑

现在网站很多可能都用了CDN,但是呢CDN会吧网站的图片全部缓存,包括用户头像,在使用了CDN的网站上,用户更换头像后可能会发现没有任何变化,甚是烦人,于是乎我就想了一般法可以让头像即时更新

思路如下: 大家都知道,在访问网址的时候可以对网址进行强制更新,就是在访问的网址最后加一个或一串问号!当然如果你第一次访问加了问号,第二在访问加了问候的网址,那么有可能这个已经被缓存了!所以加一个问候不是解决的最终方案,然后在问号后面再加一个当前的时间戳,这样你每次访问的时候,请求的网址就不同了,这头像也可以即时刷新了!(必须在后台开启头像的静态调用)

下面说方法:

1.找到 source/function/function_core.php

编辑修改代码:
  1. return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_'.$size.'.gif\'" />';
复制代码

修改为:
  1. return $returnsrc ? $file : '<img src="'.$file.'?'.time().'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_'.$size.'.gif\'" />';
复制代码


2.修改头像调用为静态

进入discuz 后台,找到 “站长” = 》“ucenter设置” =》 “头像调用方式” 然后修改为 :使用静态地址调用头像



完成以上操作,你的网站就可以百分百即时更新头像了!


crx349 发表于 2016-11-12 22:38:29 | 显示全部楼层
静态获取 一般就可以解决哦
回复

使用道具 举报

 楼主| 疆飞 发表于 2016-11-13 10:03:33 | 显示全部楼层
crx349 发表于 2016-11-12 22:38
静态获取 一般就可以解决哦

图片会被CDN缓存,所以用户上传头像以后看不到自己新上传的头像!
回复

使用道具 举报

wangtao8 发表于 2016-11-13 22:11:52 | 显示全部楼层
这样问题是解决了,但是流量消耗就大了
比较理想的办法是上传头像后能生成独一无二的地址
回复

使用道具 举报

lz49858007 发表于 2016-11-14 12:15:20 | 显示全部楼层
本帖最后由 lz49858007 于 2017-3-3 15:09 编辑

这样也倒是个好办法啊。。









回复

使用道具 举报

 楼主| 疆飞 发表于 2016-11-14 21:45:15 | 显示全部楼层
wangtao8 发表于 2016-11-13 22:11
这样问题是解决了,但是流量消耗就大了
比较理想的办法是上传头像后能生成独一无二的地址

这个倒是,到时我看看能不能给一个固定参数
回复

使用道具 举报

fujie1982 发表于 2020-6-2 11:04:34 | 显示全部楼层

还有一个问题。右上角的小头像还是老的。贴子里的大头像确实改了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 01:34 , Processed in 0.044106 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表