Шаблон сайта не применяется - разбор причин
Правки шаблона не видны на сайте или показывается совсем не тот дизайн. Разбираем причины по убыванию частоты, начиная с имени текущего шаблона.
С чего начать
Печатаем имя и путь текущего шаблона:
printf("шаблон=%s путь=%s\n", SITE_TEMPLATE_ID, SITE_TEMPLATE_PATH);// строку временно ставят в подвал: она сразу называет виновникаИмя текущего шаблона отвечает на половину вопросов. Если оно не то, разбор идёт по правилам показа, а если то - смотрят каталог, в котором лежат правки.
Ищем копии шаблона в разных каталогах:
find /home/bitrix/www -maxdepth 4 -type d -name 'main' -path '*templates*'# шаблон из своего каталога перекрывает одноимённый шаблон каталога ядраПравка одноимённого шаблона в каталоге ядра - классическая потеря времени. Файл меняется, страница остаётся прежней, потому что платформа берёт шаблон из своего каталога проекта.
Проверяем, не отдаётся ли страница из кэша готовых страниц:
curl -sI https://example.com/ | grep -iE 'x-bitrix-composite|cache-control'# страница из композита показывает вёрстку, собранную до правок шаблонаСмотрим, подключились ли стили шаблона:
curl -s https://example.com/ | grep -oE 'href="[^"]*template_styles[^"]*"' | head# пустой ответ означает, что стили шаблона не подключены вовсеПроверяем шапку и подвал на ошибки:
php -l /home/bitrix/www/local/templates/main/header.phpphp -l /home/bitrix/www/local/templates/main/footer.phptail -20 /var/log/nginx/error.log # там же видно фатальные ошибки страницы# ошибка в шапке рвёт страницу целиком, а вывод обрывается на серединеПричины
-
Сработало другое правило показа шаблона примерно 30% случаев
ПризнакНа части страниц дизайн один, на других другой, хотя правили один шаблон.
ПроверкаПечатаем имя текущего шаблона на проблемной странице и сверяем с правилами показа.
Что делатьПравим порядок правил показа: побеждает первое подходящее, а общее правило ставят последним.
-
Правится копия шаблона в другом каталоге примерно 20% случаев
ПризнакФайл шаблона изменён, а страница выглядит ровно как прежде.
ПроверкаИщем одноимённые каталоги шаблона в своём каталоге проекта и в каталоге ядра.
Что делатьПереносим правки в шаблон своего каталога: именно он перекрывает одноимённый шаблон ядра.
-
Страница отдаётся из кэша готовых страниц примерно 20% случаев
ПризнакПервый заход показывает старую вёрстку, обновление страницы иногда помогает.
ПроверкаСмотрим служебные заголовки ответа и проверяем страницу с выключенным композитом.
Что делатьСбрасываем кэш готовых страниц после правок шаблона или исключаем страницу из него.
-
Стили и скрипты шаблона не подключились примерно 15% случаев
ПризнакРазметка на месте, а оформление отсутствует полностью или частично.
ПроверкаИщем подключение файлов шаблона в исходном коде страницы и смотрим их адреса.
Что делатьПодключаем файлы средствами платформы и указываем пути от каталога текущего шаблона.
-
Ошибка в шапке или подвале шаблона примерно 15% случаев
ПризнакСтраница обрывается на середине или белеет после правки шаблона.
ПроверкаПроверяем синтаксис файлов шаблона и смотрим журнал ошибок веб-сервера.
Что делатьЧиним ошибку в файле шаблона: до неё страница выводится, после - обрывается.
Частые вопросы
Где должен лежать свой шаблон сайта?
В каталоге шаблонов своего каталога проекта, а не среди штатных. Так обновление продукта не затрёт вёрстку и правки переживают переустановку.
Почему на одной странице дизайн другой?
Для неё сработало другое правило показа шаблона. Правила проверяются по порядку, и первое подходящее выигрывает.
Как быстро проверить, дело в кэше или нет?
Открыть страницу с параметром, отключающим кэш готовых страниц, и сравнить. Разница сразу показывает, где искать дальше.
Почему стили не подключились после переноса?
Пути к файлам записаны относительно старого каталога шаблона. Их собирают от константы пути текущего шаблона, а не пишут строкой.
Можно ли править штатный шаблон продукта?
Технически да, но обновление вернёт его в исходный вид. Свою вёрстку держат в копии шаблона в каталоге проекта.
Смежное
- Шаблон сайта - оглавление подтемы
- Шаблон под раздел и по условию - как устроены правила показа
- Натяжка вёрстки на шаблон сайта: разрез, пути, компоненты - как собирают сам шаблон
- Стили и скрипты в шаблоне: подключение, порядок, кэш - подключение файлов оформления
- Правки шаблона компонента не видны: разбор причин - тот же разбор для компонента
- Композитный сайт: включение, динамические области, сброс - кэш готовых страниц
- Компоненты и шаблоны - устройство шаблонов целиком