可以。将smarty的变量$use_sub_dirs=true;
然改caching_id就可以生成目录。比如caching_id="dir1|dir2|dir3"就生成了三级目录的cache

解决方案 »

  1.   

    谢谢!Gdj(陈水.智商只有129.非卖品) 
    我试了一下,我设了$use_sub_dirs=true,生成的缓存文件就自动创建了2级目录:
    cache/%%6C/6C0/6C04D25E%%login.htm我要是再设 $smarty->display("login.htm","dir1|dir2|dir3"); 
    就生成了 cache/dir1/dir2/dir3/%%6C/6C0/6C04D25E%%login.htm 这样的目录可是前面三级目录是我指定的,能不能不去认为的管,只指定一个目录级数,让smarty自己生成目录结构?还有smarty默认就是创建2级目录吗?可不可以指定创建n级目录?(其实和上面的问题一样)
      

  2.   

    自动生成的那两级目录应该是用于循环冗余码校验。如果你有特殊需要,可自己修改smarty的源码去掉他们。但一般不建议这么做,因为它可以有效减少在php查找缓存所需的时间。你说的指定创建n级目录的意思是什么我不清楚。你可以写一个函数,create_cache_id($n);来定制N级的cache_id。