ecshop生成纯静态页

来源:互联网 发布:golang reflect.value 编辑:程序博客网 时间:2024/04/30 18:52
1. 打开index.php 找到 $smarty->display('index.dwt', $cache_id),并将其注释掉。
 
2. 在 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;
 }
 
3. 将 
$file = 'index.html';//静态网页文件名
 $content = $smarty->make_html('index.dwt');//根据index.dwt模板生成网页内容
 $filename = ROOT_PATH . $file;//静态网页路径
 file_put_contents($filename, $content);//生成文件
 $site_url = rtrim($ecs->url(),'/');
 echo "生成成功<a href=$site_url target=\"_blank\">浏览首页</a> ";
  // echo $content;//输出首页到页面
这些代码,放到  if (!$smarty->is_cached('index.dwt', $cache_id)) {} 这个里面。
 
4.运行index.php,即可生成index.html。
按照上面操作之后,有些人还是不行,原因是之前已经生成了首页模板缓存,没有清楚后台的缓存,$cache_id还有值,进入后台清楚缓存,再运行index.php,方可生成静态页。
 
这是生成首页的例子,产品列表页和详细页可参考上面生成。本已代码在2.7.3版本测试成功过。
0 0