spUrl 用在生成静态页面时候的问题

#1 peter

配置设置情况
$spConfig = array(
    'html' => array(  // HTML生成配置
        'enabled' => TRUE, // 开启HTML生成功能  
        'safe_check_file_exists' => TRUE, // 获取URL时,检查物理HTML文件是否存在,如文件不存在,则返回安全的动态地址
        'file_root_name' => '/', // 静态文件生成的根目录名称,设置为空则是直接在入口文件的同级目录生成
        'url_setter' => array("spHtml","setUrl"), // 写入URL的列表接口设置,这里同时还可以设置成单独的函数名称
        'url_getter' => array('spHtml','getUrl'), // 获取URL的列表接口设置
        'safe_check_file_exists' => TRUE, // 获取URL时,检查物理HTML文件是否存在,如文件不存在,则返回安全的动态地址
     ),

    'url' => array(
        'url_path_info' => TRUE, // 是否使用path_info方式的URL
        'url_path_base' => '/index.php', // URL的根目录访问地址
    ),  
);

模板页面使用了<{spUrl c=sell a=shihuiquan id=$product.id}> 生成地址,
按正确的逻辑应是这样的:
1、如果静态页面存在,会生成静态页面地址。
2、如果静态页面不存在,就用动态地址。

问题是在第一个逻辑,生成的静态地址都是这样的:
http://product/other/201103/25.html 本来是这样的 http://www.main.com/product/other/201103/25.html
结果少了域名,请问高手怎么调好?

2011-06-07 09:51:07

#2 jake

'url' => array(
        'url_path_info' => TRUE, // 是否使用path_info方式的URL
        'url_path_base' => '/index.php', // URL的根目录访问地址
    ),  

上面这块不要设置了

另外,少了域名应该也不会有http://加上的,所以网址应该是对的。

2011-06-07 13:37:25

#3 peter

现在成了这样的地址。多///。:o
http://www.main.com////product/other/201103/25.html

2011-06-07 15:57:05

#4 peter

html 源码地址 如下: ////product/other/201103/21.html
多出来的////如何解决,之前就出了这个问题。
确实没出现http:// 这个是浏览器自己加上去的。

2011-06-07 16:04:17

#5 jake

'file_root_name' => 'topic'
前面不加斜杠。
删了临时文件再生成。

2011-06-07 18:32:08

#6 peter

谢谢JAKE,问题已经解决了,确实要及时删除临时文件,才能保证测试的准确性。

2011-06-08 09:20:11