Статьи

Как исправить большой размер папки кеша cache/min, вызванный динамическим встроенным JS — База знаний WP Rocket

Если папка cache/min слишком велика из-за необычно большого количества файлов JS, это может вызвать проблемы:

  • Занимает слишком большую дисковую квоту в вашей учетной записи хостинга
  • Слишком много файлов означает, что иногда старые не удаляются полностью

Когда количество JS-файлов слишком велико, это обычно связано с динамическим встроенным JavaScript на вашем сайте. Начиная с WP Rocket 3.1, когда активирована опция объединения JS, встроенные скрипты JS также оптимизируются путем включения их в объединенный файл JS.

Что такое «Dynamic Inline JS»?

В этом контексте «динамический» означает контент, который меняется от страницы к странице. Динамический встроенный JS означает, что один и тот же сценарий присутствует на многих страницах вашего сайта, но одна небольшая часть меняется от страницы к странице. Это приведет к созданию нового комбинированного файла JS для каждой страницы. На сайте с большим количеством страниц это быстро создаст слишком много файлов JS.

Вот пример части встроенного скрипта:

ga('ec:addProduct', {
<br>       'id': '3DH048',<br>       'name': '3D Uruguay Hat',<br>       'category': 'Countries/South America/Uruguay/All Products/Hats/3D Hats/World Cup/Uruguay',<br>       'price': '7.99',
<br>   });

Этот же сценарий будет на каждой странице продукта вашего сайта, но детали, такие как идентификатор продукта, имя, категория и цена, будут разными для каждого продукта, что потребует нового файла JS для каждого продукта на вашем сайте. 

Чтобы вызвать проблему, достаточно одного символа в сценарии, чтобы он отличался на странице.

Решение состоит в том, чтобы исключить такие скрипты из добавления в объединенный JS-файл.

Как найти встроенный JS для исключения

Чтобы определить, какие скрипты являются динамическими, мы должны сравнить 2 из объединенных файлов JS, созданных WP Rocket, и найти различия. Это приведет нас к сценариям, которые нужно исключить.

  1. Активируйте WP Rocket с включенной опцией Combine JS.

  2. Откройте на веб-сайте две страницы с одинаковым типом контента, например, два сообщения в блоге или два продукта.

  3. Перейдите в Просмотр> Источник страницы и найдите объединенный файл JS, созданный WP Rocket. Он будет ближе к нижней части источника страницы, а URL-адрес будет иметь следующий формат: /cache/min/1/734613487895454.js Вот пример:
    СОВЕТ. Выполните «Найти» (Mac: Command + F, ПК: CTRL + F) для cache / min или .js, чтобы сузить поиск11. Проверьте, отличаются ли объединенные файлы .js, посмотрев на имена файлов. Если имена файлов отличаются, мы знаем, что существует проблема.

  4. Далее мы сравним эти 2 файла, чтобы найти разницу. Поскольку код минимизирован, его трудно читать, поэтому сначала мы удалим код. Вы можете сделать это на: unminify.com

    • Щелкните файл JS из источника страницы
    • Выберите весь JS (Mac: Command + A, ПК: CTRL + A), затем скопируйте содержимое
    • Вставьте содержимое на unminify.com, затем нажмите Unminify.
  5. Откройте новую вкладку браузера и перейдите на DiffChecker.com. Вставьте неуменьшенное содержимое в поле «Исходный текст» слева.

  6. Повторите шаг 5 для второй страницы, которую вы открыли на шаге 2. Затем возьмите неминифицированное содержимое и вставьте его в текстовое поле Changed с правой стороны в Diffchecker:

    Как исправить большой размер папки кеша /min, вызванный динамическим встроенным JS - База знаний WP Rocket

  7. Щелкните ” Найти отличия”. Подождите минуту или около того, чтобы обработать разницу. Затем вы увидите параллельное сравнение кода с выделенными изменениями. Нажмите на красную / зеленую полосу справа, чтобы перейти непосредственно к различным частям кода. Конкретные изменения будут выделены более темным оттенком красного / зеленого. Теперь вы должны увидеть отдельные части кода, которые отличаются:

    Как исправить большой размер папки кеша /min, вызванный динамическим встроенным JS - База знаний WP Rocket

    В этом примере длинная строка цифр / букв различается на каждой странице. Вероятно, он уникален на каждой странице, и в этом проблема.

  8. Затем нам нужно выбрать строку, которая исключает скрипт в WP Rocket. Это должно быть что-то уникальное для этого сценария, которое будет присутствовать в каждом случае. В этом примере хорошим кандидатом для идентификации этого сценария будет: ct_input_name

  9. Введите это в параметр WP Rocket: Excluded Inline JavaScript.

    Как исправить большой размер папки кеша /min, вызванный динамическим встроенным JS - База знаний WP Rocket

После исключения проверьте папку кеша, чтобы убедиться, что проблема решена. Если проблема не исчезнет, ​​вам следует повторить процесс, но сравнить другой тип контента на вашем сайте. Например, если вы сначала сравнили сообщения в блогах, попробуйте сравнить продукты. В разные типы контента могут быть включены разные JS.

Если в папке min уже было слишком много файлов JS для автоматического удаления вашим сервером, возможно, вам придется вручную удалить их через FTP. После того, как будут сделаны правильные исключения, файлы будут удалены как обычно, автоматически.

Является ли это ответом на ваш вопрос? Спасибо за ответ 

https://docs.wp-rocket.me

Кнопка «Наверх»