欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

如果解决smarty模板重名(路径不同),导致的编译后的文件被覆盖的问题。

程序员文章站 2022-03-20 09:25:54
...
Smarty PHP 如果解决smarty模板重名(路径不同),导致的编译后的文件被覆盖的问题。
例如
文件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