В чем разница между embed [] и зависимостями [] для типа ClientLibraryFolder?

Я попытался добавить несколько категорий, чтобы вставлять [] и зависимости [] взаимозаменяемо много раз. Но я всегда вижу ошибку разрешения зависимостей в JavaScript на веб-сайте.

Также, как указать порядок категорий в записи с несколькими значениями, например embed []? Есть ли способ контролировать порядок источника JavaScript, который загружается во время запуска веб-сайта?

Ответы

Ответ 1

categories - это список идентификаторов для публикации clientlib под.

dependencies должен привести к тому, что ваша страница будет иметь дополнительные запросы к другим клиентским ресурсам (внешние "подписаться" )

embed должен "агрегировать" те другие клиентские ссылки в текущую клиентскую ссылку (внутренняя подписка)

оба свойства могут иметь несколько значений, а интерфейс CRXDE Lite позволяет изменять порядок элементов в списке значений.

Данные Clientlibs:

  • /etc/clientlibs/depA categories = [ "depA" ]
  • /etc/clientlibs/depB categories = [ "depB" ]
  • /etc/clientlibs/depC categories = [ "depC" ]
  • /etc/clientlibs/useA categories = [ "useA" ], dependencies = [ "depA", "depB" ]
  • /etc/clientlibs/useB categories = [ "useB" ], embed = [ "depB" , "depC" ]

Если страница использует "useA" <cq:includeClientLib categories="useA"/>, тогда HTML должен иметь запросы для depA, depB, useA (через соответствующие URL-адреса, то есть /etc/clientlibs/depA.css

Если страница использует "useB" <cq:includeClientLib categories="useB"/>, то HTML должен иметь только запрос на использование B. Содержимое /etc/clientlibs/useB.css будет конкатенацией содержимого depB, depC, useB.

Менеджер библиотек в {localhost} /system/console/configMgr/com.day.cq.widget.impl.HtmlLibraryManagerImpl имеет конфигурацию отладки, чтобы определить, являются ли запросы ACTUALLY конкатенированными. Это описано в http://dev.day.com/docs/en/cq/current/deploying/configuring_osgi.html#par_variable_18

Чтобы определить несколько зависимостей (при условии, что вы используете maven для создания из вашей файловой системы и установки в CQ5), папка clientlibs будет иметь файл ".content.xml", который нуждается в следующем атрибуте:

dependencies="[depB,depC]"

Ответ 2

чтобы проверить необходимые клиентские библиотеки для встраивания, вы можете использовать инструмент оптимизатора ClientLibs по адресу: https://adobe-consulting-services.github.io/acs-aem-tools/features/clientlibs-optimizer/index.html. Он также дает вам порядок, в котором вы должны хранить вставленные клиентские библиотеки