相对路径相对的是php文件所在的目录,不是模板所在目录

解决方案 »

  1.   

    "../{$images}/aa.jpg">$tpl->assign('images','实际路径...') ;我是用这个带变量的路径解决的。
      

  2.   

    谢谢,带变量的方式,我明白了,
    但是,为什么smarty模板,对于模板文件里的 "../" 这种相对路径会忽略掉呢?
      

  3.   

    并没有忽略,
    tpl模板的路径和用来输出模板的php路径是不一样的,
    当前路径是以正在执行的php文件为准。
      

  4.   

    是啊,我当前路径为 webroot/admin/index.php 要引用的图片路径是webroot/images/ 我在模板文件中,用,<img src="../images/aa.jpg">,不管我在路径前加几个 "../",最后出来的图平路径,都是从 webroot/admin/images/aa.jpg,而到不了webroot/images/aa.jpg,看输出的html文件里,代码变成,<img src="images/aa.jpg">,也就是我用的"../"不起作用
      

  5.   

    看一下template_c中编译后的文件就知道了
      

  6.   

    注意你的webroot的目录,
    前几天我也遇到类似问题,
    后来发现是图片文件都放到webroot的上一级目录了,就没法调用了,
      

  7.   

    呵呵,谢谢大家,很久没来,我知道怎么回事了,因为原来的程序不是我写的,所以不太明白,后来发现了下面的代码:$tpl->register_outputfilter("ChangePath");有下面的函数定义
    function ChangePath($buffer,&$tpl) 
    {
      return (preg_replace("/\.\.\//", "", $buffer));
    }原来编译后的程序把 ../ 过滤了,怪不得我用“....//” 可以起作用。