ecshop 生成纯静态页面的方法
最近有个项目首页调用的查询太多,导致打开较慢,想来想去,生成纯静态是个比较合适的解决办法,实现方法如下:
1、includes 目录cls_template.php.增加如下代码:
- function make_html($filename, $cache_id = '')
- {
- ob_start();
- $this->display($filename,$cache_id);
- $out = ob_get_contents();
- ob_end_clean();
- return $out;
- }
2.复制首页index.php为index_html.php,因为ECSHOP是使用SMARTY模板引擎的,所以我们可以使用SMARTY生成文件函数,把模板的静态网页输出.
在首页中,$smarty->display('index.dwt',$cache_id);有这一句,说明是把网页显示出来,现在我们把它改成如下代码(参看注释)
$file = ‘index.html’;//静态网页文件名
$content = $GLOBALS['smarty']->make_html(‘index.dwt’,$cache_id);//根据index.dwt模板生成网页内容
$filename = ROOT_PATH . $file;//静态网页路径
file_put_contents($filename, $content);//生成文件

