makeAll 的静态页后 spUrl 地址还是原来的 请问是什么问题

#1 蓝色天擎

批量静态页生成后,页面上对应的spUrl 却还是原先的,改了半天也还是没找到问题所在,求帮助。 另如果是生成单页面make,则没有问题。


以下是代码:
public function createBrandsHtml(){
        $configObj = spClass("lib_web_config");
        $isAllowed = $configObj->find(array("id"=>3),null,"value");
        if( 1 == $isAllowed["value"] ){
            $brandObj = spClass("lib_brand");
            $GLOBALS['G_SP']['html']['file_root_name'] = $this->spArgs("html_file");
            if( $results = $brandObj->findAll() ){
                foreach($results as $values){
                    $url_name = strtolower($values['brand_name']).".html";
                    $urls[] =  array(
                        array('goods','brand',array('id'=>$value['brand_id'])), $url_name
                    );
                }
                spClass('spHtml')->makeAll($urls);
                $this->success("You have successfully created brands html files!");
            }else{
                $this->error("Failed to get available data!");
            }
        }else{
          $this->error("Hacker Attack!");
        }

}

2013-07-12 08:58:24

#2 jake

全部清空tmp目录,然后再生成。另外一些问题可以参考一下手册和论坛旧贴。

2013-07-12 09:38:28

#3 蓝色天擎

我试过清空TMP, 可没有效果。 也搜过论坛类似的问题, 还是没找到答案...
之前存储目录没按照自定义的,我清空了TMP再生成就好了, 这个怎么清,spUrl都还是没变.  
我在找找看 我是哪里写错了。

2013-07-12 12:29:33

#4 jake

试试

array('id'=>(int)$value['brand_id'])

如果不行,清空tmp再试试

array('id'=>(string)$value['brand_id'])

这个方法论坛搜索有说

2013-07-12 12:39:21

#5 蓝色天擎

终于找到了原因了,  之前没用纯静态的时候 用伪静态 为了优化URL 在spUrlRewrite 做了映射, 多了个只是为了优化URL的参数
'map' => array(
  'brands' => 'goods@brand',
),
'args' => array(
  'brands' => array('id','url_name'),
)

把映射参数里那个url_name 去掉就好了...   哎 改了一大堆 就是忘了没去看入口文件里的Rewrite设置。
感谢J大的回答, 有碰到类似情况的童鞋, 如果是把伪静态改成静态记得看下Rewrite设置。

2013-07-12 12:50:44