1. 程式人生 > >織夢廣告更改不顯示,如何更新織夢JS呼叫廣告快取

織夢廣告更改不顯示,如何更新織夢JS呼叫廣告快取

確實織夢在快取這一塊存在很大BUG,但是這並不影響我們使用它,對於新手小白來說以下可能會幫助到你。


 第一種方法:更改織夢繫統快取時間


織夢有2種呼叫廣告方式:內建程式碼與JS呼叫廣告,織夢DedeCms廣告通常使用的是JS呼叫形式,這樣就會遇到廣告改動之後前臺主頁重新整理不顯示改動更新。
一開始可能會以為沒有改變的原因是因為沒有更新織夢快取,但更新了系統快取也還是這樣,網頁中的廣告沒有更新。
鑑於:織夢DedeCms解決JS廣告呼叫更新速度慢更新不顯示問題我們可以這樣解決:

  • 進入織夢後臺管理介面;
  • 系統 -> 系統基本引數 -> 效能選項;
  • 找到“需快取內容全域性快取時間(秒): 3600”;
  • 將這個數字改為你認為合適的時間.比如設定成0;
  • 這樣我們就能及時看到廣告效果了;

織夢JS呼叫廣告的優點在於不用繁複生成頁面即可替換廣告內容,缺點會佔用一定資源。
 
第二種方法:刪除織夢廣告快取檔案


無論是生成頁面還是更新快取,前臺頁面中的廣告程式碼就是不更新,那這到底是為什麼呢?經過仔細分析,發現是呼叫快取,是dedecms的ad_edit.php編輯儲存資訊後又沒有刪除原來的快取資訊,算是一個BUG吧,這裡給大家一個解決辦法,具體修改如下:
找到dede/ad_edit.php檔案,在大約第70行的位置找到如下程式碼:

$dsql->ExecuteNoneQuery($query);
ShowMsg(“成功更改一則廣告程式碼!”,$ENV_GOBACK_URL);

然後修改程式碼如下:

$dsql->ExecuteNoneQuery($query);
// 刪除廣告快取檔案 begin
if(file_exists(DEDEDATA.”/cache/myad-$aid.htm”)){
@unlink(DEDEDATA.”/cache/myad-$aid.htm”);
}
// 刪除廣告快取檔案 end
ShowMsg(“成功更改一則廣告程式碼!”,$ENV_GOBACK_URL);

修改成功後不用再次一鍵更新織夢網站就能看到改動後的廣告程式碼。
 
第三種方法:清理織夢快取資料夾


開啟後臺檔案:dede/sys_cache_up.php找到CheckPurview('sys_ArcBatch');
在其下一行新增以下程式碼:

//清理快取增加版
function clean_cachefiles( $path ){
    $list = array();
    foreach( glob( $path . '/*') as $item ){
        if( is_dir( $item ) ){
            $list = array_merge( $list , clean_cachefiles( $item ) );
        }else{
            $list[] = $item;
        }
    }
    foreach( $list as $tmpfile ){
        @unlink( $tmpfile );
    }
    return true;
}

找到if($uparc==1),在其上一行新增以下程式碼:

//清理datacache
clean_cachefiles( "../data/cache" );
//清理datatplcache
clean_cachefiles( "../data/tplcache" );
//清理datasessions
clean_cachefiles( "../data/sessions" );

增加織夢快取清理功能之後,點選“更新系統快取”,然後在前臺重新整理一下頁面就可以了!

本文首發:本本兒(http://www.benbener.cn/question/59