Вчера я работал над сайтом, и все было хорошо. Я портировал его, чтобы использовать Smarty. У меня была последняя страница для изменения, которая не требовала какого-либо тестирования, так как файл шаблона Smarty на самом деле мало что делал. Я сохранил свою работу, все закрыл и ушел. Раньше сегодня я проверил сайт и обнаружил, что он ушел. Он отображает неверный шаблон для всех, кроме одной страницы. Я никогда ничего не менял с настройкой сервера, так что это не проблема. Страницы, которые ранее работали безупречно, больше не работают. Я тестировал пятерку, и не вижу, что происходит. Чтобы не публиковать все, что у меня есть, я поделюсь любым кодом, который вы хотели бы посмотреть. Просто оставьте комментарий, и я сделаю редактирование. Любые идеи, что может пойти не так? Я использую Smarty 3.1.8 и PHP 5.3.3.
Живой сайт
Смешение происходит потому, что (почти) все шаблоны называются одинаковыми. В соответствии с этим потоком я обнаружил, что когда Smarty компилирует шаблоны, он учитывает только имя файла, а не полный путь к этому файлу. Для этого вы должны указать идентификатор компиляции, который для этой цели лучше всего быть родительским каталогом исполняемого в настоящее время скрипта. Если вы используете только константу __FILE__
, вы можете получить несколько компиляций одного и того же шаблона, если вы используете несколько сценариев в одном каталоге для отображения одного и того же шаблона. Поэтому я использую dirname(__FILE__)
для моего идентификатора компиляции, который должен работать для всех.