pbootcms網站修改CSS樣式后自動更新緩存(CSS自動增加版本號)
需求介紹
一般(ban)來說樣式修改(gai)后,因為(wei)瀏覽器有(you)緩存上線的網站簡(jian)單刷新沒有(you)變化(hua),這個時候需要強制(zhi)刷新(ctrl+f5)才可(ke)以(yi)立馬看到效(xiao)果(guo)(guo),但是客戶不懂看不到修改(gai)效(xiao)果(guo)(guo)還(huan)要解釋。
其實可以給修改的(de)樣式增加版本號(hao)來解決,這樣就可以一刷新看到(dao)最(zui)新樣式,例如常見(jian)的(de)手(shou)動添加版本號(hao)方式:
<link rel="stylesheet" href="{pboot:sitetplpath}/css/common.css?v=1"> //加?v=1,每次后面的數字變化
那么(me)有(you)沒(mei)辦(ban)法(fa)讓版本號(hao)每次(ci)自動變(bian)(bian)化呢,而且(qie)要有(you)修(xiu)改(gai)了(le)去刷(shua)新才變(bian)(bian)化,沒(mei)修(xiu)改(gai)去刷(shua)新不變(bian)(bian)化。這種自動方法(fa)是有(you)的,下(xia)面就來介紹下(xia)相關操(cao)作。
實現步驟
2022-12-24不二開不影響(xiang)在(zai)線更新(xin)方式,使用pbootcms擴展標簽(qian)來實(shi)現,新(xin)建個標簽(qian){ver(靜態文件(jian)路(lu)徑)}
1、打開擴展標簽專屬文件 \apps\home\controller\ExtLabelController.php
①引入Config
use core\basic\Config; //@pbhtml
②在$this->test();下方增加$this->smartVersion();
③新增對(dui)應(ying)標簽函數(shu)smartVersion()和auto_version方(fang)法
//靜態文件尾巴增加時間版本號標簽@pbhtml-version private function smartVersion(){ $pattern = '/\{ver\s?\(\{([^\}]+)\}\/([^\}]+)\)\}/'; if (preg_match($pattern, $this->content, $matches)) { $this->content = preg_replace_callback($pattern,function($matches){ if($matches){ return $this->auto_version(APP_THEME_DIR.'/'.$matches[2]); } },$this->content); } } // 自動更新時間版本號@pbhtml-version public function auto_version($url){ $ver = filemtime($_SERVER['DOCUMENT_ROOT'].$url); return $url.'?v='.date("YmdHis",$ver); }
示例圖:
2、修改原有調用樣式或JS的標簽,只要是靜態文件的均可添加,規則{ver(xxxxxx)}
原有的:
{pboot:sitetplpath}/skin/css/style.css) {pboot:sitetplpath}/skin/js/cms.js
修改后:
{ver({pboot:sitetplpath}/skin/css/style.css)} {ver({pboot:sitetplpath}/skin/js/cms.js)}
參考以上方式在需要的地方修改即可
效果演示
當通過ftp修改了style.css文件內的樣(yang)式后(hou)保存(cun),到頁面上刷(shua)新(xin)就會發(fa)現樣(yang)式尾(wei)巴多了串時間版本號,這樣(yang)就達到了刷(shua)新(xin)即可看到樣(yang)式變化。
小知(zhi)識(shi)補充:PbootCMS擴展標簽在網站在線升級后不會(hui)被(bei)覆蓋,可以放心的擴展使用。
文章標題:pbootcms網站修改CSS樣式后自動更新緩存(CSS自動增加版本號)
文章版權:PB模板網 (bilinxiyi.cn) 所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!
本文最后更新發布于
2023-04-16 18:24:46
,某些文章具有時效性,若有錯誤或已失效,請在下方留言或聯系客服: