织梦广告更改不显示,如何更新织梦JS调用广告缓存

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/diandi7/article/details/84864143

确实织梦在缓存这一块存在很大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

猜你喜欢

转载自blog.csdn.net/diandi7/article/details/84864143
今日推荐