Поменял шаблон Битрикса, а ничего не изменилось
Чтение и практика ~12 мин
Вы добавили дату в карточку новости, сохранили файл и обновили страницу. Всё по-старому. Коллега советует очистить кеш. Иногда это помогает. Иногда вы просто стираете полезный след и продолжаете править файл, который вообще не используется.
Ниже порядок проверок. Учебный пример синтетический: это не запись эксперимента на запущенной CMS. Названия пунктов панели и доступные действия проверяйте в своей версии.
1. Убедиться, что смотрим туда
Запишите точный адрес страницы, домен и окружение. Сравните их с местом, куда загружаете файл. Типичная ловушка: редактировать тестовый сайт, а обновлять рабочий. Ещё одна — два похожих списка новостей на разных страницах.
Откройте страницу в приватном окне без входа в админку. Сохраните исходный вид. Затем проверьте HTML и стили в браузере: дата отсутствует в ответе или уже есть, но скрыта? Это разные задачи. Отключение стилей на своём компьютере не является готовым исправлением для посетителей.
2. Проверить данные и вызов компонента
Есть ли у новости дата, которую вы собираетесь выводить? Передаёт ли её компонент в шаблон? Не подставляйте сегодняшнее число просто ради видимого результата: заказчику нужна дата публикации записи.
Сопоставьте имя шаблона из вызова компонента с каталогом, который редактируете.
В нашей ситуации вызов с cards_2025 не указывает на каталог cards. Проверьте
также действующий шаблон сайта и другие копии. Поиск файла с подходящим названием
сам по себе не устанавливает связь со страницей.
3. Получить доказательство выполнения файла
На своей тестовой копии можно временно добавить в предполагаемый шаблон уникальную безвредную метку и искать её в исходном ответе. Метка не должна раскрывать пути, пароли или данные пользователей. После проверки её нужно удалить.
Метка появилась: этот файл действительно участвовал в построении данного ответа. Проверяйте вывод даты и данные. Метки нет: причин несколько — другой файл, готовый HTML из кеша, другое окружение или старый исполняемый PHP-код. Отсутствие метки ещё не выбирает одну из них.
4. Разделить слои кеша
| Слой | Что может оставаться старым | Что поможет различить причины |
|---|---|---|
| Браузер или промежуточный сервер | Ответ либо CSS/JS | Сравнение ответа на сервере и в браузере, заголовков и адресов ресурсов |
| Кеш страницы, включая композитный режим | Готовая страница или её часть | Проверка используемого режима и повторный гостевой запрос после его адресного обновления |
| Кеш компонента | Данные и готовый вывод блока | Перестроение кеша нужного компонента с повторной проверкой блока |
| OPcache | Скомпилированный PHP-код | Настройки обслуживающего сайт PHP-FPM и контролируемая перезагрузка именно его |
Не сбрасывайте всё по очереди без записи наблюдений. Сформулируйте одну гипотезу, выберите воздействие на соответствующий слой, сравните ответ до и после. Выполняйте такие проверки в тестовом окружении; перезапуск общего PHP-FPM влияет и на другие сайты.
В панели страницы кнопка «Сбросить кеш» и действия отдельного компонента — разные инструменты. Сброс для одной группы пользователей не доказывает результат для гостя. Механизмы описаны в документации о кешировании.
5. Когда подозревать OPcache
OPcache хранит исполняемый PHP-код; он не заменяет кеш HTML. Настройка
opcache.validate_timestamps=0 отключает автоматическую проверку изменений файлов.
При включённой проверке интервал задаёт opcache.revalidate_freq, поэтому
validate_timestamps=1 ещё не исключает задержку. Это описывает
справочник PHP.
Смотрите конфигурацию того PHP-FPM, который обслуживает сайт. Значения PHP
в командной строке могут относиться к другому процессу. «Компонент выполнился»
тоже не доказывает выполнение выбранного template.php.
После проверки адреса, подключённого файла и слоя HTML-кеша гипотезу об устаревшем PHP-коде можно проверить контролируемой перезагрузкой того же PHP-FPM. Если метка появилась — наблюдение поддерживает гипотезу. Если её нет и после перезагрузки — вернитесь к адресу, окружению и выбору файла. Сам по себе перезапуск не является универсальным ремонтом шаблонов.
Как понять, что задача закончена
В нашем примере недостаточно увидеть даты. Нужно также сохранить карточки, плашки, данные и кеширование. Проверьте гостевой ответ после удаления меток, повторного запроса и восстановления обычных настроек. Не выдавайте постоянное отключение кеша за исправление, если по условиям он должен работать.
Теперь откройте практику с двумя причинами одного симптома. Там можно ошибиться, увидеть последствия и переиграть решение.
Дополнительный источник практических тем — заметки Михаила Базарова. Его статьи здесь не перепечатываются. Текст и ситуации RootPoligon написаны заново; атрибуция официальной документации — в уведомлении MIT.
Прочитали и разобрались? Отметьте урок — прогресс сохранится в этом браузере.