Discuz! X 更新主题封面图片后自动刷新CDN服务器上缓存
分类 网站技术/村民张先生 发布于 2020-02-18 03:19
应用场景:后台“上传设置 - 本地附件 URL 地址”处为域名,该域名已启用CDN,通过请求 $host/purge/$uri 的方式刷新缓存。
打开 source/function/function_post.php 文件,
查找:
$image = new image();
在其下方增加:
$isupdate = file_exists($basedir.'./forum/'.$coverdir.$tid.'.jpg') ? 1 : 0;
这一步是为了判断是否已经设置过封面,下一步中将通过此变量决定是否请求刷新缓存。
查找:
$cover = $remote.$cover;
在其下方增加:
if($aid && $isupdate) { preg_match_all('/^http(s)?:\/\/(.*?)\//', $_G['setting'][attachurl], $attachDomain); if($attachDomain[0][0]) file_get_contents($attachDomain[0][0].'purge/shequ/forum/'.$coverdir.$tid.'.jpg'); }
当 $aid 存在(排除后台批量生成封面的情况)且 $isupdate 存在(即生成过封面)时,请求CDN服务器刷新缓存。注意CDN服务器上需要将网站服务器IP加入支持刷新缓存的IP列表。
欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截