dede错误:没有该栏目数据 可能缓存文件 的问题



  系统搬家后或在系统还原后,重新更新栏目或文件的时候,有时会出现这样的错误提示:没有该栏目数据 可能缓存文件(data/cache/inc_catalog_base.inc)没有更新 请检查是否有写入权限


  这时大家都去改文件或文件夹的写入权限,一般会去改成777或755,但实际上这并不管用。其实解决方法很简单,只要做到以下三步,即可


  1. 把inc_catalog_base.inc缓存文件删掉


  2. 更新系统缓存,点“生成——>更新系统缓存——>开始执行”就可以了


  3. 然后重新生成栏目,就不会出现错误提示了。我之前的网站80后的我们(ww.80hou.us) 就是这样解决的。



一、1. 把inc_catalog_base.inc缓存文件删掉


  2. 更新系统缓存,点“生成——>更新系统缓存——>开始执行”就可以了


  3. 然后重新生成栏目,就不会出现错误提示了


这个方法我没有试,不知道能不能解决。。。。我按第二种方法执行完第一步就成功了。


二、尝试一般性的解决方案:


1.在网站管理后台,点击左侧“核心”——“网站栏目管理”,进入栏目管理,在右上方找到“更新栏目缓存”,点击,更新缓存,提示“操作成功,正在返回……”;


开始以为这样更新一下缓存,就可以了,谁知,再次生成栏目html,依然提示“没有该栏目数据, 可能缓存文件(/data/cache/inc_catalog_base.inc)没有更新, 请检查是否有写入权限”。于是,于是开始进一步的尝试:


2.登录ftp,找到data/cache目录,删掉inc_catalog_base.inc文件,然后重复1的操作,刷新ftp的data/cache目录,inc_catalog_base.inc出现,说明是有写入权限的;


再次点生成栏目html,依然提示“没有该栏目数据, 可能缓存文件(/data/cache/inc_catalog_base.inc)没有更新, 请检查是否有写入权限”……很顽固,便想到肯定是8月3日的这次更新出了什么问题,于是,开始根据生成html的makehtml_list.php文件开始搜集线索,一一查验文件,最后发现,原来是dede目录下的config.php在本次更新中,被织梦的工作人员不小心给改错了,在此教大家如何改回来这个错误:


3.打开dede目录(织梦系统的后台管理目录),找到config.php文件打开,查找第86行:


$fp1Header = “<{$phph}php\r\nglobal \$_Cs;\r\n\$_Cs=array();\r\n”;


修改为:


$fp1Header = “<{$phph}php\r\nglobal \$cfg_Cs;\r\n\$cfg_Cs=array();\r\n”;


4.继续向下,到第90行:


fwrite($fp1,”\$_Cs[{$row->id}]=array({$row->reid},{$row->channeltype},{$row->issend});\r\n”);


修改为:


fwrite($fp1,”\$cfg_Cs[{$row->id}]=array({$row->reid},{$row->channeltype},{$row->issend});\r\n”);


5.保存文件,进入后台,重复1的操作更新栏目缓存,然后点击生成栏目html,不在提示错误了,栏目正常生成。