2012-05-13 34 views
0

我昨天在网站上工作,一切都很好。我正在将它移植到使用Smarty。由于Smarty模板文件实际上并没有太多的功能,所以我有最后一页要更改哪些不需要进行任何测试。我救了我的工作,关闭了所有的东西,然后离开了。今天早些时候,我查看了该网站,发现它已经无法使用。它为所有页面显示不正确的模板。我从来没有改变任何与我的服务器设置,所以不能成为问题。以前工作完美的页面不再有效。我已经五重检查了我的工作,看不出有什么问题。为了不发布我拥有的每一件东西,我将分享您想要查看的任何我的代码。只需发表评论,我将进行编辑。任何想法可能会出错?我正在使用Smarty 3.1.8和PHP 5.3.3。Smarty没有选择正确的模板来显示

Live site

+0

那么,访问您的链接似乎一切正常?你可以澄清什么不工作(也许粘贴一个tpl文件不是渲染)。不过,我用Smarty检查的默认设置是模板和缓存目录 - 它们是可写的吗?你有正确的权限?我能看到的唯一问题是[index.css](http://bama.ua.edu/~tscrompton/annotation/browse/index.css)是一个404 –

+0

它似乎是随机选择不同的模板来显示。我给出的链接应该指向一个带有四个链接到其他页面的页面。而且,其他网页应该很明显,它们在URL中的关键字不正确。我对所用的所有目录和文件拥有必要的权限。我在三个不同的机器和两个不同的浏览器上试过这个。我没有使用缓存。 '/ st8/tscrompton/includes/Smarty-templates'中唯一的模板是'footer.tpl'。其他人与他们相应的PHP脚本'(index.php - > index.tpl)'在同一个目录中。 –

+0

并且随机地,它似乎选择一个特定的随机模板并使用该模板很长一段时间,然后它会改变它的想法(可能每当我做任何改变?)。 –

回答

0

的混淆发生是因为几乎所有的模板被命名为同样的事情。根据this thread,我发现当Smarty编译模板时,它只考虑文件名,而不是该文件的完整路径。因此,您必须指定一个编译ID,为此目的最好是当前正在执行的脚本的父目录。如果您只使用__FILE__常数,则如果您在同一目录中使用多个脚本来显示相同​​模板,则最终可能会有多个同一模板的编译结果。所以我使用dirname(__FILE__)作为我的编译ID,其中应该是为大家工作。