Просмотров: 44267
Дата последнего изменения: 19.08.2021
Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет
Отладка
Основной инструмент отладки - это страница Настройки > Настройки продукта > Композитный сайт > Отладка, на которой производится логирование всех ошибок:
По умолчанию инструмент отключён. Укажите требуемый период работы Отладки и включите её. В списке отобразится список страниц не создавших свой файл кеша с данными по странице. Для гарантии появления в списке нужной странице зайдите на неё под пользователем, которому она должна быть отдана в виде кеша.
Основные инструменты работы в ней:
Тип события - причина попадания страницы в список. По этой причине можно принимать решение о необходимости доработки страницы. Все возможные ошибки и способы решения:
Перезапись кеша. Частая ошибка, имеющая несколько причин. Решение.
Вызов RestartBuffer. Как правило этот метод работает на страницах, которые не должны кешироваться. Если нужно чтобы страница кешировалась, избавьтесь от этого вызова.
Сброс кеша. Нормальная ситуация, когда сброс кеша происходит при обновлении контента страницы, при обновлении системы (не всегда сбрасывается кеш) и при использовании в URL параметра &clear_cache=Y.
Не GET-запрос. В технологии работают только GET запросы.
Параметр ncc - параметр URL по умолчанию для запрета на кеширование. Решение - удалить параметр, если он добавлен вручную.
Cookie NCC - служебная
cookieCookie - это текстовая строка информации, которую веб-сервер передает в браузер посетителя сайта и которая сохраняется в файле на устройстве посетителя сайта. Как правило, используется для определения уникальности посетителя, времени его последнего визита, личных настроек, уникального идентификатора корзины покупок и т.д.
Маска исключения - страница добавлена в поле Маска исключения настроек композитного сайта. Решение - исключить страницу из поля.
Параметр Исключения - в URL страницы присутствует параметр, добавленный в поле Параметры URL, при которых не будет работать композитный режим настроек. Решение - исключить параметр из этого списка.
Неверный домен не указан домен в поле Список доменных имен. Решение - добавить домен в поле.
Неверный параметр запроса. Параметр отсутствует в поле а также страницы содержащие только следующие параметры настроек Композита.
Локальный редирект внутри системы, например - короткие ссылки.
Административная панель. Независимо от группы, в которой состоит пользователь, кеш не будет применяться к странице на которой отображается Административная панель.
Аварийное завершение PHP (die) - кеш не создан из-за вызова функции die или exit.
Страница против кеширования (markNonCashable) - установлен запрет на кеширование страницы. Решение - удалить запрет.
Композитный Javascript не внедрён. Редкая ошибка, когда возникли какие-то проблемы с внедрением JS. Устранение - дебаг кода.
Параметр 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: