Просмотров: 28227
Дата последнего изменения: 19.08.2021
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
4
5
Недоступно в лицензиях:
Ограничений нет
Отладка
Основной инструмент отладки - это страница Настройки > Настройки продукта > Композитный сайт > Отладка, на которой производится логирование всех ошибок:
По умолчанию инструмент отключён. Укажите требуемый период работы Отладки и включите её. В списке отобразится список страниц не создавших свой файл кеша с данными по странице. Для гарантии появления в списке нужной странице зайдите на неё под пользователем, которому она должна быть отдана в виде кеша.
Основные инструменты работы в ней:
- Тип события - причина попадания страницы в список. По этой причине можно принимать решение о необходимости доработки страницы. Все возможные ошибки и способы решения:
- Перезапись кеша. Частая ошибка, имеющая несколько причин. Решение.
- Голосование компонента "Против" - включить голосование компонента "за". (Неактуально для Автокомпозита.)
- Вызов RestartBuffer. Как правило этот метод работает на страницах, которые не должны кешироваться. Если нужно чтобы страница кешировалась, избавьтесь от этого вызова.
- Сброс кеша. Нормальная ситуация, когда сброс кеша происходит при обновлении контента страницы, при обновлении системы (не всегда сбрасывается кеш) и при использовании в URL параметра
&clear_cache=Y
.
- Не GET-запрос. В технологии работают только GET запросы.
- Параметр ncc - параметр URL по умолчанию для запрета на кеширование. Решение - удалить параметр, если он добавлен вручную.
- Cookie NCC - служебная
cookie
Cookie - это текстовая строка информации, которую веб-сервер передает в браузер посетителя сайта и которая сохраняется в файле на устройстве посетителя сайта. Как правило, используется для определения уникальности посетителя, времени его последнего визита, личных настроек, уникального идентификатора корзины покупок и т.д.
Подробнее...
_NCC (No Composite Cache). Решение - настроить группы.
- Маска исключения - страница добавлена в поле Маска исключения настроек композитного сайта. Решение - исключить страницу из поля.
- Параметр Исключения - в URL страницы присутствует параметр, добавленный в поле Параметры URL, при которых не будет работать композитный режим настроек. Решение - исключить параметр из этого списка.
- Неверный домен не указан домен в поле Список доменных имен. Решение - добавить домен в поле.
- Неверный параметр запроса. Параметр отсутствует в поле а также страницы содержащие только следующие параметры настроек Композита.
- Локальный редирект внутри системы, например - короткие ссылки.
- Административная панель. Независимо от группы, в которой состоит пользователь, кеш не будет применяться к странице на которой отображается Административная панель.
- Аварийное завершение PHP (die) - кеш не создан из-за вызова функции die или exit.
- Страница против кеширования (markNonCashable) - установлен запрет на кеширование страницы. Решение - удалить запрет.
- Композитный Javascript не внедрён. Редкая ошибка, когда возникли какие-то проблемы с внедрением JS. Устранение - дебаг кода.
- Cookie CC не найдена. Решение - настроить группы.
- Параметр sessid - в запросе есть сохранённая авторизация.
- Ajax запрос. Запрос сделан с помощью BX.ajax. Такие запросы не кешируются.
- Директория
/bitrix
- административный раздел по умолчанию включён в Маску исключения и не удаляется из неё.
- Файл index-controller.php - адрес, запрещённый для кеширования.
- Пользователь - логин пользователя, обращение которого не создало кеш.
- Сообщение - служебная информация для части событий, по которым возможна расширенная отладка.
Сравнение версий
Ссылка в колонке Сообщения Сравнить версии открывает в новом окне две версии страницы: старую и новую, где простейший сравниватель покажет зелёным - добавленную часть кода, красным - удалённую. Если возможности штатного сравнивателя не устраивают разработчика, то по ссылкам
исходный код
в "шапке" можно скачать исходный код для более тщательной проверки.
Версия ниже 17.1.0
Внимание! Если сайт создаётся на дистрибутиве версии ниже 17.1.0, то необходимо определить в файле dbconn.php константу define("BX_COMPOSITE_DEBUG", true);
. В этом случае в лог будут писаться все голосования "против", а также создаваться история изменений страниц в кеше (/bitrix/html_pages/<domain>/
) с расширением .delete.<microtime>.
На работающем сайте использование этой константы приведет к увеличению использования дискового пространства. Поэтому её лучше отключить после настройки Композитного сайта.
Основной инструмент работы - это лог, который генерирует функция AddMessage2Log. Место расположения лога определяется настройками dbconn.php:
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/../log.txt");
В логе можно увидеть список шаблонов, которые голосовали "против":

В примере лога видно, что компонент меню "возражает" против использования его в технологии Композитный сайт.