Каков наилучший способ обработки кэширования AEM в диспетчере? - PullRequest
0 голосов
/ 21 мая 2018

Недавно я столкнулся с ситуацией, когда мне нужно очистить кэш диспетчера вручную.Например, если я изменяю какие-либо файлы Js / css, мне нужно вручную очистить кэш диспетчера, чтобы получить эти измененные новые Js / css, иначе он будет обслуживать старую версию кода.Я только что услышал, что ACS разработал версию clientlib, которая поможет нам делать версионирование.У меня так много вопросов по этому поводу.

До версии clientlib как управлял AEM?Разве у AEM нет интеллектуального управления версионными клиентскими библиотеками?Это правильный способ обращения с этим?Можем ли мы создать сценарий, пока он не восстановит существующие JS / css файлы?Какие у нас есть варианты?

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Versionlib clientlib является правильным решением.Но вам понадобится немного больше:

  • Versionlib Clientlibs - это метод очистки кэша на стороне клиента.Используется для уничтожения кеша браузера.
  • Это НЕ разрушит кеш диспетчера.Страницы, кэшированные в диспетчере, продолжают обслуживаться, если не очищены вручную.
  • См. Здесь для аналогичного вопроса.

Чтобы ответить на ваши вопросы:

  • До версии clientlib как управлял AEM?Как указывает @Subhash, в состав сценариев развертывания prod (Bamboo или Jenkins) входит очистка кэша диспетчера при изменении клиентских библиотек.
  • Разве у AEM нет интеллектуального управления версионными клиентскими библиотеками?- Это так же, как любые инструменты CMS.Стратегия кэширования должна быть ответственностью http-серверов, а НЕ AEM.Более того, при развертывании изменений кода js необходимо очистить кэш диспетчера, чтобы страницы отражали новые изменения js.
  • Это правильный способ обращения с ним?Для перебора клиентов - версия clientlib на 100% надежна.Для очистки кэша диспетчера вам понадобится другой метод.
  • Можем ли мы создать сценарий, в то время как мы восстановим существующий до очистки этих файлов JS / css?Должен быть частью вашего процесса CI, определенного в заданиях Jenkins / Bamboo.Не ответственность AEM.
  • Какие еще есть варианты?- Для очистки кэша диспетчера попробуйте dispatcher-flush-rules .Вы можете настроить, чтобы при публикации путей проектирования / etc они автоматически очищали все дерево, чтобы последующие запросы попадали на издателя и получали обновленные клиентские библиотеки.

Рекомендуется:

  • Используйте очистку кеша диспетчера, управляемого Versionli Clientlibs + CI.

Поскольку клиентские библиотеки модифицируются ИТ-командой и требуют развертывания, сделайте это частью процесса CI для очистки кэша.Правила диспетчерской очистки могут помочь.Но это НЕ ПОТРЕБНО, чтобы кто-то изменил js / css и нажал кнопку публикации в производстве.Цикл развертывания производства должен выполнить эту задачу.Справочные ссылки для сценариев очистки кэша диспетчера: 1. Документация Adobe , 2. Путь Дженкинса , 3. Бамбуковый путь

0 голосов
/ 22 мая 2018

Перед версионными клиентскими библиотеками - вы обычно связываете аннулирование диспетчера как часть конвейера сборки и развертывания.На последнем этапе после развертывания пакетов для автора и публикации экземпляров диспетчер становится недействительным.Это по-прежнему приводит к тому, что кэш браузера не очищается (в случаях, когда имя clientlib не изменилось.)

Чтобы преодолеть это, вы можете создать собственные методы очистки кэша, в которых поддерживается схема именования клиентских библиотек для каждого выпуска.- например: /etc/designs/homepageclientlib.v1.js или /etc/designs/homepageclientlib.<<timestamp>>.js.Это только для браузера, чтобы вызвать новую загрузку файла с сервера.Но с CI / CD и частыми выпусками в наши дни это просто накладные расходы.Существуют также не элегантные способы принудительного обхода диспетчера с использованием параметров запроса.На самом деле, даже сейчас, если вы откроете какую-либо из страниц AEM, вы можете заметить cq_ck параметр запроса, предназначенный для отключения кэширования.

Версионные клиентские библиотеки из ACS Commons теперь - путь.Без проблем, конфигурация генерирует уникальный md5hash для клиентских библиотек, тем самым заставляя не только обходить кеш диспетчера, но и кеш уровня браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...