公司首页改版进行时....现在是下午。"见鬼事件“

discuz 6.1 版本。

然后呢。新上传了一个”新春版“的首页。然后再下午4点准时替换 index.php,新版上线。

谁知道呢。在看新版本页面的时候出现了个现象。就是

游客看任然是旧页面。而登陆后呢却能看到新页面。。。 进到DZ后台更新了数据缓存和模板缓存都不行。

荤菜了

急呀

最后想不到问题只能看代码了。

打开 index.php 我看到这一段

if($cacheindexlife && !$discuz_uid && $showoldetails != 'yes' && (!$_DCACHE['settings']['frameon'] || $_DCACHE['settings']['frameon'] && $_GET['frameon'] != 'yes') && empty($gid)) { $indexcache = getcacheinfo(0); if($timestamp - $indexcache['filemtime'] > $cacheindexlife) { @unlink($indexcache['filename']); define('CACHE_FILE', $indexcache['filename']); $styleid = $_DCACHE['settings']['styleid']; } elseif($indexcache['filename']) { @readfile($indexcache['filename']); $debug && debuginfo(); $debug ? die('<mce:script type="text/javascript"><!-- document.getElementById("debuginfo").innerHTML = " '.($debug ? 'Update at '.gmdate("H:i:s", $indexcache['filemtime'] + 3600 * 8).', Processed in '.$debuginfo['time'].' second(s), '.$debuginfo['queries'].' Queries'.($gzipcompress ? ', Gzip enabled' : '') : '').'"; // --></mce:script>') : die(); } }

才发现~~原来如此。

主要看这两个参数: $cacheindexlife && !$discuz_uid

第一个是页面cache 事件,后台设置。 第二个是 用户ID。只要用户登录了才有数值。也就是说如果 用户没登陆而且又设置了页面cache事件。那么进入到这个逻辑里面。。。。

然后再看下面的条件就明白了

if($timestamp - $indexcache['filemtime'] > $cacheindexlife) {

} elseif($indexcache['filename']) {

看这两个。

如果创建的的页面cache文件的创建 时间大于 定义的页面cache 时间后就会删除页面cache 文件。从而使用新的页面cahe 文件。 否则如果页面cache 文件存在呢,就会去读 页面cache 文件然后返回。而新版本的页面还没上线,而旧版本就给用户不断的使用。从而导致旧版本页面"很难”过期

怪不得,没有登录的用户只能看到旧版本页面了。

解决最简单的办法。 进入DZ后台把页面cache 设置为 0 ,然后在上线。然后等旧版本的页面CACHE过期,再进DZ后台开启页面cache 。。就OK了

就因为这个问题~~导致中午要在公司吃烧腊饭~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值