如果解决smarty模板重名(路径不同),导致的编译后的文件被覆盖的问题。
程序员文章站
2022-03-28 13:03:08
...
Smarty PHP 如果解决smarty模板重名(路径不同),导致的编译后的文件被覆盖的问题。
例如
文件1
文件2
文件1和文件2不在同一路径下。2个index.tpl文件内容也不同。
运行之后都编译文件到
/template_c/%%117/%%1172603085
导致文件1和文件2用浏览器打开后套用的是同一个index.tpl。
我想实现分别自动套用自己路径的index.tpl。这个如何解决呢?
例如
文件1
//$obj_tpl是smarty对象$obj_tpl->setTemplateRoot(dirname(__FILE__));$obj_tpl->display("index.tpl");
文件2
//$obj_tpl是smarty对象$obj_tpl->setTemplateRoot(dirname(__FILE__));$obj_tpl->display("index.tpl");
文件1和文件2不在同一路径下。2个index.tpl文件内容也不同。
运行之后都编译文件到
/template_c/%%117/%%1172603085
导致文件1和文件2用浏览器打开后套用的是同一个index.tpl。
我想实现分别自动套用自己路径的index.tpl。这个如何解决呢?
回复讨论(解决方案)
给出你的目录结构
/mod/zhuanti0402/
包含
index.php
index.tpl
/mod/zhuanti0528/
包含
index.php
index.tpl
/template_c/这里边都是乱七八糟的
我没把php和tpl模板文件分开目录放是因为一共就只需要1个php,一个tpl。一页就全解决了。
那 smarty 在哪?怎么配置和调用的?
调用是这样的
$obj_tpl = JATUtility::UseSmarty();
这么说这个还有配置?
观摩怎么解决这个问题
这个问题我也遇到过,目前本人解决的方案:1、改文件名,不要用相同的文件名;2、每次使用smarty模板前重新定义 compile_dir