本文介绍了Smarty没有选择要显示的正确模板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我昨天在做一个网站,一切都很好。我移植它是为了使用Smarty。我还有最后一个页面需要更改,它不需要任何测试,因为Smarty模板文件实际上并没有做太多事情。我保存了我的工作,关闭了所有的东西,然后离开了。今天早些时候,我检查了这个网站,发现它已经失控了。除一个页面外,它显示的所有页面的模板都不正确。我从未更改过服务器设置,所以这不可能是问题所在。以前完美无瑕的页面不再有效。我已经对我的工作进行了五次检查,看不出有什么问题。为了不张贴我所拥有的每一件事,我会分享我的任何代码,你想看看的。只需留下评论,我就会进行编辑。你知道可能出了什么问题吗?我使用的是Smarty 3.1.8和PHP 5.3.3。
推荐答案
之所以发生混淆,是因为(几乎)所有模板的名称都相同。根据this thread,我发现当Smarty编译模板时,它只考虑文件名,而不考虑该文件的完整路径。因此,您必须指定一个编译ID,为此,最好将其作为当前执行的脚本的父目录。如果您只使用__FILE__
常量,如果您在同一目录中使用多个脚本来显示同一模板,则可能最终得到同一模板的多个编译。因此,我使用dirname(__FILE__)
作为我的编译器ID,应该适用于所有人。
这篇关于Smarty没有选择要显示的正确模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!