在使用thinkphp5时,有一个问题特别的头疼,那就是每次修改模板,或者修改php文件时,视图不能立即在模板中体现出来?
网上说在config.php中配置一下就可以了,我也配置了还是不行,我的配置如下:
'app_debug'=>true,
'app_trace'=>true,
//关闭模板缓存
'TMPL_CACHE_ON' => false,
'HTML_CACHE_ON'=>false,
'default_module'=>'home',
'default_controller'=>'Index',
'default_action'=>'index'
最后想了一个办法,在进入home模块时,判断一下缓存目录是否有缓存,有的话把缓存删除;
具体代码如下:
public function _initialize(){
//查看文件夹下是否有文件
$path = TEMP_PATH;
if(!is_dir($path)){
echo '不是目录';
}else{
/**
opendir()打开一个目录,读取他的内容,然后关闭;成功则返回目录句柄资源,失败则返回false
如果路径不是合法目录,或者由于许可限制或文件系统错误导致的目录不能打开,则抛出E_WARNING级别的错误
所以在生产环境下,为了避免错误输出,可以在函数名前添加@来隐藏opendir()的错误输出
*/
if($handle = @opendir($path)){
//readdir()返回目录中下一个文件的文件名
while($file = readdir($handle) !== false){
echo $file.'<hr/>';
if($file != '.' && $file != '..'){
echo $path.DIRECTORY_SEPARATOR.$file.'<hr/>';
}else{
echo 'no<br/>';
}
}
}
closedir($handle);
}
}
结果令我大失所望,居然输出:
明明temp目录下是有模板缓存的,并且我还新建了3个txt文件,为啥全部输出1呢?
经过一番摸索,终于找出了问题的根源所在-- 等号与不全等的优先级不一样的,等于号的优先级小于不全等号的优先级,所以应该在等号哪里加上一个括号
然后,再次浏览,问题解决了
我的大作,欢迎来踩哦 www.iis7.com |