您现在的位置是:首页 > cms教程 > PbootCMS教程PbootCMS教程

图片加载太慢pbootcms自动替换图片地址为七牛云cdn的方法

含玉2023-01-31PbootCMS教程已有人查阅

导读本篇主要是为这篇文章(未备案域名怎么使用国内cdn加速网站?)进行pbootcms相关补充,主要为了解决网站放在香港小水管主机图片加载太慢问题

本篇主要是为这篇文章(未备案域名怎么使用国内cdn加速网站?)进行pbootcms相关补充,主要为了解决网站放在香港小水管主机图片加载太慢问题,或者放国内主机带宽小且网站图片多。此二次开发实现图片走七牛云等提供镜像存储的cdn服务商,这样可以明显提高网站加载速度。
加速原理:图片后台上传到本地,然后前台访问网页的时候图片会自动镜像一份到七牛云上,接着返回七牛云的图片链接到网页上显示,实现图片加速访问。
安心提示:此方法是本地依旧有图片,七牛云镜像一份,所以后期不用七牛云了,也不影响网站图片加载!
二次开发增加自动替换图片地址
1、configconfig.php里增加:(注意前一行需要以逗号结尾,默认官方版本无逗号需要自行加上)
// cdn链接地址,http(s)://img.xxx.com,尾巴不带“/”,单独调用{pboot:cdnurl}
'cdn_url' => '',

2、ppshomecontrollerParserController.php里搜索function adjustLabelData,在其下方增加:
// 自动替换图片链接 @mk-cdn
if ($cdn_url = $this->config('cdn_url')) {
if (strpos($data,$cdn_url)===false) {
$src_ori_file = ROOT_PATH . $data;
$out_cdn_file = rtrim($cdn_url,'/') . $data;
if (! file_exists($out_cdn_file) && file_exists($src_ori_file) && $out_cdn_file!=rtrim($cdn_url,'/')) {
$data = $out_cdn_file;
}
}
}

3、ppshomecontrollerParserController.php里搜索{pboot:pageurl},在其下方增加:
$content = str_replace('{pboot:cdnurl}', rtrim($this->config('cdn_url'),'/'), $content); // 单独cdn地址调用标签 @mk-cdn

4、ppshomecontrollerIndexController.php里搜索$this->getContent($data),在其上方增加:
// 编辑器图片加cdn @mk-cdn
if ($cdn_url = Config::get('cdn_url')) {
$data->content = str_replace('="/static/upload/', '="'.rtrim($cdn_url,'/').'/static/upload/', $data->content);
}

至此,后面只要去config里添加cdn镜像链接即可。
更新补充1
经测试发现如果前台图片做了裁剪cdn替换图片地址会失效,因此还要做以下调整。
1、打开ppshomecontrollerParserController.php
找到$maxheight = isset($params['maxheight']) ? $params['maxheight'] : null;下面增加一行
if ($cdn_url) $data = str_replace(rtrim($cdn_url,'/'), '', $data);
在这个判断if (! file_exists($max_out_file) && file_exists($max_src_file)) {结束的下一行增加
if ($cdn_url && file_exists($max_out_file)) {
if (strpos($data,$cdn_url)===false) {
$out_cdn_file_2 = rtrim($cdn_url,'/') . $data;
if (! file_exists($out_cdn_file_2) && file_exists($max_out_file) && $out_cdn_file_2!=rtrim($cdn_url,'/')) {
$data = $out_cdn_file_2;
}
}
}
找到$height = isset($params['height']) ? $params['height'] : null;下面增加一行
if ($cdn_url) $data = str_replace(rtrim($cdn_url,'/'), '', $data);
在这个判断if (! file_exists($out_file) && file_exists($src_file)) {结束的下一行增加
if ($cdn_url && file_exists($out_file)) {
if (strpos($data,$cdn_url)===false) {
$out_cdn_file_3 = rtrim($cdn_url,'/') . $data;
if (! file_exists($out_cdn_file_3) && file_exists($out_file) && $out_cdn_file_3!=rtrim($cdn_url,'/')) {
$data = $out_cdn_file_3;
}
}
}
单页编辑器替换补充
打开appshomecontrollerIndexController.php,找到function getAbout后,
$content = $this->parser->parserAfter($content); // CMS公共标签后置解析
把上面代码下方增加:
// 编辑器图片加cdn @mk-cdn
if ($cdn_url = Config::get('cdn_url')) {
$content = str_replace('="/static/upload/', '="'.rtrim($cdn_url,'/').'/static/upload/', $content);
}
效果截图:

本文标签:

很赞哦! ()

相关源码

  • 帝国cms7.5手游评测资讯礼包合集游戏专区下载网站模板本模板基于帝国CMS系统开发,为手游门户网站设计。支持PC端与移动端同步生成HTML静态页面,内置多端同步生成功能。模板架构针对手业特点优化,满足APP下载、游戏资讯、攻略等内容发布需求。查看源码
  • 帝国cms7.5自适应作文新闻资讯教育网站模板本模板基于帝国CMS7.5内核开发,为教育机构、培训学校等知识传播单位打造。通过自适应设计确保在手机、平板、电脑等设备上均能获得专业浏览体验查看源码
  • (自适应)橙色家政服务清洁保洁服务pbootcms网站模板源码下载模板核心价值:基于PbootCMS内核开发的家政服务类网站模板,通过模块化设计展现服务项目、团队风采、服务案例等核心板块,突出时效预约、服务标准化展示等家政行业特性。查看源码
  • (自适应HTML5)响应式智能设备人工智能机器pbootcms源码免费下载这款基于PbootCMS开发的网站模板为人工智能和智能设备行业设计,采用现代化科技风格,突出产品的智能特性和技术创新。模板架构合理,功能完善,能够有效展示各类智能产品的核心功能和解决方案。查看源码
  • (自适应)大气壁挂炉暖气设备家用电器模板带加盟申请和下载资料为壁挂炉、暖气片等供暖设备企业设计的PbootCMS模板,通过响应式技术实现跨终端展示产品参数和技术细节。后台统一管理确保采暖系统数据、服务网点信息实时同步更新查看源码
  • (自适应响应式)WORDwps办公资源教程资讯网站模板下载基于PbootCMS内核开发的响应式网站模板,为办公教程、WPS技巧分享、职场技能培训等场景打造。模板内置标准化文档分类体系,支持图文/视频教程混合展示,满足现代办公知识传播需求。查看源码
分享笔记 (共有 篇笔记)
验证码: