Я новичок в PHP, у меня есть приложение, которое разрабатывается в PHP и Symfony2. Я изменил html-файл, это изменение не отражается, когда я обновляю страницу.
01. I restarted the server No luck.
02. I tried to remove the twig folder from /protected/cache/ page it self not loading.
Просьба сообщить, я использую сервер tomcat для развертывания.
Примечание. У меня нет командной строки symfony2, настроенной на сервере.
Самый простой способ: введите команду:
rm -rf app/cache/*
Дело в том, что все файлы в app/cache/
могут быть удалены свободно, при необходимости они восстанавливаются.
Если вы действительно хотите очистить только твиг-кеш:
rm -rf app/cache/<environment>/twig
Замените <environment>
на dev
, prod
или test
соответствии с вашими требованиями.
При создании нового экземпляра Twig_Environment вы можете передать массив параметров в качестве второго аргумента конструктора. Один из них – auto_reload
. При разработке с помощью Twig полезно перекомпилировать шаблон при изменении исходного кода. Если вы не auto_reload
параметра auto_reload
, оно будет определяться автоматически на основе значения debug
.
Установите auto_reload
как true
:
$twig = new Twig_Environment($loader, array('auto_reload' => true));
Документация Twig для разработчиков: http://twig.sensiolabs.org/doc/api.html#environment-options
У меня была аналогичная проблема, но удаление папки кеша не повлияло на мой шаблон, и я не знаю почему. Теперь, по-моему, проблема заключается в следующем коде в моем файле config_dev.yml:
twig: cache: false
Возможно, это также решение для вас, так что вам не нужно постоянно использовать команду.
Рекомендации:
Конфигурация TwigBundle
Параметры среды Twig
Если вы используете opcache / другое подобное кэширование, удаление палитры кэшей ветки не будет обновлять шаблоны, поскольку кэш-ветка состоит только из файлов .php. Вам нужно удалить папку кэша ветки + выполнить файл php, который содержит:
opcache_reset ();
Вы должны внести некоторые изменения в файл app.php, расположенный в веб-папке.
Изменить:
$kernel = new AppKernel('prod', false);
чтобы:
$kernel = new AppKernel('prod', true);
и очистите кеш, если хотите.