本篇主要是為這篇文章(未備案域名怎么使用國(guó)內(nèi)cdn加速網(wǎng)站?)進(jìn)行pbootcms相關(guān)補(bǔ)充,主要為了解決網(wǎng)站放在香港小水管主機(jī)圖片加載太慢問(wèn)題,或者放國(guó)內(nèi)主機(jī)帶寬小且網(wǎng)站圖片多。此二次開(kāi)發(fā)實(shí)現(xiàn)圖片走七牛云等提供鏡像存儲(chǔ)的cdn服務(wù)商,這樣可以明顯提高網(wǎng)站加載速度。
加速原理:圖片后臺(tái)上傳到本地,然后前臺(tái)訪問(wèn)網(wǎng)頁(yè)的時(shí)候圖片會(huì)自動(dòng)鏡像一份到七牛云上,接著返回七牛云的圖片鏈接到網(wǎng)頁(yè)上顯示,實(shí)現(xiàn)圖片加速訪問(wèn)。
安心提示:此方法是本地依舊有圖片,七牛云鏡像一份,所以后期不用七牛云了,也不影響網(wǎng)站圖片加載!
二次開(kāi)發(fā)增加自動(dòng)替換圖片地址
1、configconfig.php里增加:(注意前一行需要以逗號(hào)結(jié)尾,默認(rèn)官方版本無(wú)逗號(hào)需要自行加上)
// cdn鏈接地址,http(s)://img.xxx.com,尾巴不帶“/”,單獨(dú)調(diào)用{pboot:cdnurl} 'cdn_url' => '',
2、ppshomecontrollerParserController.php里搜索function adjustLabelData,在其下方增加:
// 自動(dòng)替換圖片鏈接 @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); // 單獨(dú)cdn地址調(diào)用標(biāo)簽 @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鏡像鏈接即可。
更新補(bǔ)充1
經(jīng)測(cè)試發(fā)現(xiàn)如果前臺(tái)圖片做了裁剪cdn替換圖片地址會(huì)失效,因此還要做以下調(diào)整。
1、打開(kāi)ppshomecontrollerParserController.php
找到$maxheight = isset($params['maxheight']) ? $params['maxheight'] : null;下面增加一行
if ($cdn_url) $data = str_replace(rtrim($cdn_url,'/'), '', $data);
在這個(gè)判斷if (! file_exists($max_out_file) && file_exists($max_src_file)) {結(jié)束的下一行增加
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);
在這個(gè)判斷if (! file_exists($out_file) && file_exists($src_file)) {結(jié)束的下一行增加
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; } } }
單頁(yè)編輯器替換補(bǔ)充
打開(kāi)appshomecontrollerIndexController.php,找到function getAbout后,
$content = $this->parser->parserAfter($content); // CMS公共標(biāo)簽后置解析
把上面代碼下方增加:
// 編輯器圖片加cdn @mk-cdn if ($cdn_url = Config::get('cdn_url')) { $content = str_replace('="/static/upload/', '="'.rtrim($cdn_url,'/').'/static/upload/', $content); }
效果截圖:
版權(quán)聲明: 本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明: 圖片加載太慢pbootcms自動(dòng)替換圖片地址為七牛云cdn的方法