确实织梦在缓存这一块存在很大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);// 删除广告缓存文件 beginif(file_exists(DEDEDATA.”/cache/myad-$aid.htm”)){@unlink(DEDEDATA.”/cache/myad-$aid.htm”);}// 删除广告缓存文件 endShowMsg(“成功更改一则广告代码!”,$ENV_GOBACK_URL);
修改成功后不用再次一键更新织梦网站就能看到改动后的广告代码。
第三种方法:清理织梦缓存文件夹
打开后台文件:dede/sys_cache_up.php找到CheckPurview('sys_ArcBatch');
在其下一行添加以下代码:
//清理缓存增加版functionclean_cachefiles( $path ){$list =array();foreach( glob( $path .'/*')as$item ){if( is_dir( $item ) ){$list = array_merge( $list , clean_cachefiles( $item ) );}else{$list[] = $item;}}foreach( $listas$tmpfile ){@unlink( $tmpfile );}returntrue;}
找到if($uparc==1),在其上一行添加以下代码:
//清理datacacheclean_cachefiles("../data/cache");
//清理datatplcacheclean_cachefiles("../data/tplcache");
//清理datasessionsclean_cachefiles("../data/sessions");
增加织梦缓存清理功能之后,点击“更新系统缓存”,然后在前台刷新一下页面就可以了!
文章首发于本本儿:http://www.benbener.cn/question/59
网友评论