Рейтинг:0

Как отладить проблему агрегации ccs и js

флаг jp

Я работаю над веб-сайтом D9. На моем локальном сервере у меня отключены все настройки кэширования и производительности, такие как агрегация js и css. Теперь, когда я копирую свой сайт на удаленный сервер, эти настройки включены. Полезно знать, что я использую адвагг рядом с основными параметрами производительности.

Но на некоторых страницах в бэкенде сайта я получаю ошибки js, приводящие к проблемам, например, с admin_toolbar и field_groups модули.

Я получаю следующие ошибки:

js_nQSC-j3xSBBFH94RLP2UNldFGFjdcQr_cdv6pqavR50.js:
263 Uncaught TypeError: невозможно прочитать свойства неопределенного (чтение «прототипа»)

js_XMjKep3b2Hxz8NdcZwBLPiZQ2m6qy98seMywBj9lZZ8.js:
475 Uncaught TypeError: невозможно прочитать свойства неопределенного (чтение «прикрепить»)

js_XMjKep3b2Hxz8NdcZwBLPiZQ2m6qy98seMywBj9lZZ8.js:56
Uncaught TypeError: Drupal.toolbar.ToolbarModel не является конструктором

При просмотре сообщений журнала нет сообщений, связанных с моими проблемами.

Когда я отключаю базовую агрегацию JS и CSS на странице производительности сайта, проблемы исчезают, и все работает, как и должно быть.После того, как я это сделал, это новое сообщение появилось в журнале сообщений. Эти сообщения указывают на отсутствие файлов js.map. Не знаю, связано ли это с моей проблемой. Поэтому я добавляю их ниже.

/сайты/по умолчанию/файлы/js/оптимизированные/карты/script.min.js.map
/sites/default/files/js/optimized/html5sortable.min.js.map
/sites/default/files/js/optimized/index.umd.min.js.map
/сайты/по умолчанию/файлы/js/оптимизированный/jquery.once.min.js.map
/sites/default/files/js/оптимизированный/backbone-min.map

Я также пытался отключить advagg и использовать только базовую агрегацию js и css, но это не решило проблему. Таким образом, похоже, что есть проблема с основным функционалом. И это все, на что ушло мое исследование, и теперь я застрял. Может ли кто-нибудь помочь мне со следующим шагом, чтобы выяснить, в чем проблема?

флаг cn
Во-первых, попробуйте перейти на вкладку «Внешний вид» в качестве администратора и повторно сохранить настройки используемой вами темы администратора. Затем перестройте кеш. Иногда это может исправить JS, который был сгенерирован или синхронизирован неправильно.
Joost avatar
флаг jp
Спасибо за быстрый ответ, я сделал то, что вы сказали, и это не решило мою проблему. Но это поставило меня на новый путь. Я использую пользовательскую тему администратора, переключение на другую тему администратора также решило проблему. Значит, что-то не так с моей пользовательской темой администратора. Любая идея, что может вызвать проблему выше?
флаг cn
Предполагая, что ваша пользовательская тема администратора является подтемой Seven, Claro или Gin, я бы проверил, как вы определили библиотеки тем в своей подтеме. Если это выглядит нормально, я бы просмотрел руководство по подтеме и воссоздал подтему с нуля: https://www.drupal.org/docs/theming-drupal/creating-sub-themes.
флаг ru
Проверить отсутствие `; ` точки с запятой в ваших файлах JS. Агрегация может удалить новые строки `\n`, если вы полагаетесь на новые строки вместо точки с запятой для «конца команды», это может вызвать эти ошибки.
Joost avatar
флаг jp
Я смог отследить его до определенной части кода js. Этот код был необходим только на двух страницах, поэтому я добавил эту библиотеку только на эти страницы, и после этого все работает как надо. Большое спасибо, эти советы действительно помогли мне разобраться в проблеме!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.