ecshop生成静态页面优化方案

发布时间:2018-04-05 21:35:00 文章分类:优化方案 作者:清水 阅读:

  现在很多商城站大部分都会使用ecshop的系统,因为它本身具有网店的管理系统,同时具有优化的功能。但是其本身不具备静态效果,所以有得有有失,不过随着系统的更新,现在也可以伪静态了,但是具体怎么去做呢?ecshop商城站优化的解决方案怎么执行呢?现在清水SEO顾问就跟大家一起来看看吧。

ecshop商城站生成静态页面优化解决方案

  首先,我们在前期就需要把网站上传的商品先要把所有商品分类好,设置好它的url规则,我们提出了解决方案就是将ECSHOP进行html静态生成技术。将全部产品ECSHOP文章等页面生成静态,ECSHOP静态文件不需要再去努力读数据库了,可以减少绝大部分的资源,而且速度会快几倍,难点就是由于ECSHOP的js还是采用很旧的架构,而生成静态技术后,由于商城很多数据都是有变动的,比如顶头的会员注册或登录状态,比如浏览历史记录等数据,这些数据都是需要通过AJAX技术才能实现,而刚好ecshop的架构不兼容JQ,因此需要解决这个ECSHOP的jq兼容问题,还有一个难点就是生成的速度,生成时候的资源分配和稳定性。数据比较大,生成太慢的话,会非常麻烦,如果生成的时候占用资源太多也麻烦。因此这些都是我们要考虑的地方。

ecshop商城站生成静态页面优化

ecshop商城站生成静态页面优化

  但是本文所要描述的是,根据ECSHOP内在的一些代码,我们生成纯静态的网页,使系统更好的优化。

  在这里,我们先对首页进行纯静态生成。

  1.复制首页index.php为index_html.php,因为ECSHOP是使用SMARTY模板引擎的,所以我们可以使用SMARTY生成文件函数,把模板

  的静态网页输出。

  在首页中,$smarty->display('index.dwt', $cache_id);有这一句,说明是把网页显示出来,现在我们把它改成如下代码(参看注释)

  $file = 'index.html';//静态网页文件名

  $content = $GLOBALS['smarty']->make_html('index.dwt');//根据index.dwt模板生成网页内容

  $filename = ROOT_PATH . $file;//静态网页路径

  file_put_contents($filename, $content);//生成文件

ecshop首页进行纯静态生成

ecshop首页进行纯静态生成

  以上几条简单的语句,我们就可以生成首页的静态网页。同理,我们可以生成产品类别和产品的静态网页,整个系统的静态化就完成了。

  首页静态页面生成后,我们接下来要生成的是产品类别的静态页面,我的想法是把产品类别页面保存在跟目录下,这样虽然会比较乱,

  但是比较适合优化,因为一般搜索引擎抓取的时候只抓取二到三层。把产品类别放在根目录,体现产品类别的重要性,易于搜索引擎的

  抓取,另外一方面,我们可以把产品放在下个目录中。

  类似代码:

  $filename = build_uri('category', array('cid' => $catinfo['cat_id']));//构造路径,这个可以选择自己喜欢的构造方法

  $content = $GLOBALS['smarty']->make_html('category.dwt');//产生静态页面内容

  $filename = ROOT_PATH . $filename;//生成文件路径,在根目录下

  file_put_contents($filename, $content);//输出

  产品的静态页面代码:

  $goodinfo = get_all_goodsinfo($goods_id);

  $cat_name = $goodinfo['cat_name'];

  $goodsfile = build_uri('goods', array('gid' => $goods_id));

  $content = $GLOBALS['smarty']->make_html('goods.dwt');

  $html_tempdir = (ROOT_PATH.$cat_name.'/');

  if (!is_dir($html_tempdir))//生成产品目录

  {

  mkdir($html_tempdir);

  }

  $htmlfilename = ROOT_PATH . $goodsfile;

  file_put_contents($htmlfilename,$content);

  我的是使用类别名称加下划线:

  function build_uri(........)

  ................

  case 'category':

  $cat_name = $GLOBALS['db']->getOne('SELECT cat_name FROM ' . $GLOBALS['ecs']->table('category') . " WHERE cat_id = '$cid'");

  $uri = $cat_name . '-' . $cid;

  if (!empty($page))

  {

  $uri .= '-' . $page;

  }

  ........

  case 'goods':

  $goods_info = $GLOBALS['db']->getRow('SELECT g.goods_name, c.cat_name FROM ' . $GLOBALS['ecs']->table('goods') . " as g left join " .

  $GLOBALS['ecs']->table('category') . " as c on c.cat_id = g.cat_id WHERE g.goods_id = '$gid'");

  $goods_name = $goods_info['goods_name'];

  $cat_name = $cat_name;

  $uri = $cat_name . '/' . $goods_name . '-' . $gid ;

产品类别的静态页面

产品类别的静态页面

  按照上面操作之后,有些人还是不行,原因是之前已经生成了首页模板缓存,没有清楚后台的缓存,$cache_id还有值,进入后台清楚缓存,再运行index.php,就可以生成静态页。关于ecshop系统页面优化解决方案清水SEO顾问就讲到这里了。需要优化服务与建站的朋友欢迎咨询清水SEO工作室。

声明:本文源自魔云网络优化工作室官网整合整理,如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快处理。
标题:ecshop生成静态页面优化方案 地址:http://www.besseo.com/yhfa/114.html