为了提高网站的浏览速度,我们需要对网站的一些页面进行静态化处理,如果是使用thinkphp开发的网站,可以让网页生成静态缓存文件(其实就是真实的静态文件,文件名和文件路径均可自定义),下面讲一下生成静态缓存的方法:
找到ThinkPHP/ThinkPHP.php,根据自身需求,设置下面的参数,一般HTML_PATH的路径可以设置成跟缓存文件同一个位置,这样清空缓存的同时也清空生成的静态缓存文件。
找到这一句:defined('HTML_PATH') or define('HTML_PATH', APP_PATH.'Html/');
修改成:defined('HTML_PATH') or define('HTML_PATH', 'Runtime/Html/'); // 应用静态目录
在前台的Application\Home\Conf\config.php配置文件里设置静态缓存的参数:
'HTML_CACHE_ON' => true,//是否开启静态缓存,只有开启了才会生成静态缓存文件
'HTML_PATH' => 'Html',//比较奇怪的是,在这里设置是无效的,需要在ThinkPHP/ThinkPHP.php文件里设置HTML_PATH,目前还没找到原因所在
'HTML_CACHE_TIME' => 0,
'HTML_FILE_SUFFIX' => '.html', //生成的静态文件的后缀
'HTML_CACHE_RULES' => array( // 定义静态缓存规则
'index:' => array(Index/{:action}'),//控制器,方法
'global:index' => array('Global/index'),
'about:index' => array('About/about_{id}'),//{id}即$_GET[‘id’]
'solution:info' => array('Solution/info_{id}_{sid}'),
)
生成的静态缓存文件如下图所示:
文件夹里面都是生成的html静态文件,用户浏览网站时相当于浏览里面的静态文件,这样浏览速度会快很多。
接下来是清除缓存文件: 删除文件夹内所有子文件夹和文件,下面是调用方法:
$dirs = array('Runtime/Html/');//需要清除缓存的文件夹
foreach ($dirs as $value) {
rmdirr($value);//开始清除缓存
}
下面是rmdirr方法的截图如下:
抛出可能会存在的的问题:
问题1:清除缓存后,会把有的静态缓存文件都删除了,前台需要打开浏览一次才能重新生成,是不是可以只删除更新的网页?
问题2: 如果是一般的企业网站,页面比较少的,可以在清除缓存的同时,自动生成静态缓存文件(利用PHP程序模似打开前台页面,就可以生成静态缓存了,如果栏目页面比较多的话,可以分栏目生成静态缓存文件),也许没必要这样,因为第一次浏览会慢一些,但之后再浏览已是静态文件。