您现在的位置是:首页 > 教程 > pbootcms教程pbootcms教程
图片加载太慢pbootcms自动替换图片地址为七牛云cdn的方法
含玉2023-01-31 00:19:39pbootcms教程已有人查阅
导读本篇主要是为这篇文章(未备案域名怎么使用国内cdn加速网站?)进行pbootcms相关补充,主要为了解决网站放在香港小水管主机图片加载太慢问题
本篇主要是为这篇文章(未备案域名怎么使用国内cdn加速网站?)进行pbootcms相关补充,主要为了解决网站放在香港小水管主机图片加载太慢问题,或者放国内主机带宽小且网站图片多。此二次开发实现图片走七牛云等提供镜像存储的cdn服务商,这样可以明显提高网站加载速度。
加速原理:图片后台上传到本地,然后前台访问网页的时候图片会自动镜像一份到七牛云上,接着返回七牛云的图片链接到网页上显示,实现图片加速访问。
安心提示:此方法是本地依旧有图片,七牛云镜像一份,所以后期不用七牛云了,也不影响网站图片加载!
二次开发增加自动替换图片地址
1、configconfig.php里增加:(注意前一行需要以逗号结尾,默认官方版本无逗号需要自行加上)
2、ppshomecontrollerParserController.php里搜索function adjustLabelData,在其下方增加:
3、ppshomecontrollerParserController.php里搜索{pboot:pageurl},在其下方增加:
4、ppshomecontrollerIndexController.php里搜索$this->getContent($data),在其上方增加:
至此,后面只要去config里添加cdn镜像链接即可。
更新补充1
经测试发现如果前台图片做了裁剪cdn替换图片地址会失效,因此还要做以下调整。
1、打开ppshomecontrollerParserController.php
找到$maxheight = isset($params['maxheight']) ? $params['maxheight'] : null;下面增加一行
打开appshomecontrollerIndexController.php,找到function getAbout后,
加速原理:图片后台上传到本地,然后前台访问网页的时候图片会自动镜像一份到七牛云上,接着返回七牛云的图片链接到网页上显示,实现图片加速访问。
安心提示:此方法是本地依旧有图片,七牛云镜像一份,所以后期不用七牛云了,也不影响网站图片加载!
二次开发增加自动替换图片地址
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);
}
效果截图:本文标签:
很赞哦! ()
相关文章
- pbootcms异常提示 Undefined constant"PAGE
- pbootcms百度推送提示not_same_site的解决方法
- pbootcms后台图片上传提示”上传失败:存储目录创建失败!的解决
- pbootcms实现php+ajax文件上传
- pbootcms系统QQ邮箱接受邮件的配置方法
- pbootcms修改权限后仍然提示“会话目录写入权限不足”的解决方法
- lamp分离部署安装pbootcms
- pbootcms符合SEO优化的目录结构分析
- pbootcms提示“未检测到您服务器环境的sqlite3数据库扩展”的解
- pbootcms升级PHP版本需要注意什么
- pbootcms判断用户是否登录并排除Cookie过期但仍显示已登录的方法
- pbootcms加载类文件时错误类名【core\\basic\\Kernel】的解决方
随机图文
-
pbootcms模板在首页调用公司简介等单页内容的写法
pbootcms模板如何在首页上调用公司简介等单页内容,id=1 这里的1就是对应的专题内容的里编号 -
pbootcms内容列表只显示推荐/置顶/头条内容
V1.2.2版本开始order排序进行调整,默认情况下置顶、推荐、头条具有优先显示,包括使用date、sorting、visits、likes、oppose时,那么如果要想按照自己的设置来可以使用自定义模式 -
pbootcms一个网站绑定两个域名的方法
方法:去pbootcms官网把两个域名都授权,然后把授权码都填写到后台,格式如下图,12345,56789 是第一个域名的授权码 -
pbootcms提示:“未检测到您服务器环境的sqlite3数据库扩展...”解决方法
请检查php.ini中是否已经开启该扩展!另外,检测到您服务器支持pdo_sqlite扩展,您也可以修改数据库配置连接驱动为pdo_sqlite试试!
留言与评论 (共有 条评论) |