2012-10-24 18 views
15

Próbowałem dodać wiele kategorii do osadzania [] i zależności [] zamiennie wiele razy. Ale zawsze widzę błąd rozwiązywania zależności w JavaScript na stronie.Jaka jest różnica między osadzaniem [] a zależnościami [] dla typu ClientLibraryFolder?

Ponadto, Jak określić kolejność kategorii we wpisie o wielu wartościach, np. Embed []? Czy istnieje sposób kontrolowania kolejności kodu źródłowego JavaScript, który jest ładowany podczas uruchamiania witryny?

Odpowiedz

27

categories to lista identyfikatorów do opublikowania pliku clientlib poniżej.

dependencies powinny powodować swoją stronę, aby mieć dodatkowe żądania innych clientlibs (zewnętrzne „zapisz”)

embed powinien „agregat” te inne clientlibs do bieżącego clientlib (wewnętrzne subskrybować)

obie właściwości może mieć wiele wartości, a interfejs CRXDE Lite umożliwia zmianę kolejności elementów na liście wartości.

Podane Clientlibs:

  • /etc/clientlibs/kategorie DEPA = [ "DEPA"]
  • /itp/clientlibs/kategorie systemu DEPB w = [ "systemu DEPB w"]
  • /itp/clientlibs/kategorie DEPC = [ "DEPC"]
  • /etc/clientlibs/useA kategorie = [ "useA"], uzależnienia = [ "DEPA", "z systemu DEPB"]
  • /itp/clientlibs/useB kategorie = [ "useB "], embed = [" depB "," depC "]

Jeśli strona wykorzystuje "useA" <cq:includeClientLib categories="useA"/>, wówczas HTML powinny mieć wnioski o DEPA, DEPB, useA (poprzez ich odpowiednie adresy URL, czyli /etc/clientlibs/depA.css

Jeśli strona używa "useB" <cq:includeClientLib categories="useB"/>, wówczas HTML powinny mieć tylko prośbę o użycieB. Zawartość /etc/clientlibs/useB.css byłaby połączeniem zawartości depB, depC, useB.

Menedżer biblioteki w {localhost} /system/console/configMgr/com.day.cq.widget.impl.HtmlLibraryManagerImpl ma konfigurację debugowania, aby ustalić, czy żądania są rzeczywiście łączone. Jest to udokumentowane w http://dev.day.com/docs/en/cq/current/deploying/configuring_osgi.html#par_variable_18

Aby zdefiniować wiele zależnościami (zakładając, że używasz Maven budować od systemu plików i zainstalować na CQ5), folder clientlibs będzie mieć plik „.content.xml”, który potrzebuje następujący atrybut:

dependencies="[depB,depC]" 
+0

Niesamowite wyjaśnienie! – Oliver

+9

Brakuje jednego szczegółu: Zależności są przechodnie, Osadzania nie. Przykład: A zależy od B, który zawiera C -> C + B i A są załadowane. Osadza się B, który zależy od C -> B + A, C nie jest. Może to być trudne, jeśli chcesz osadzić niektóre biblioteki CQ (aby zażądać jednego JS), a te biblioteki zależą od innych bibliotek CQ. Następnie musisz osadzić je wszystkie we właściwej kolejności. –

+0

Należy dodać, że "kategorie" mają na celu odejście od struktury katalogów.Dlatego NIE jest pomocne tworzenie etykiet kategorii, które zasadniczo naśladują foldery. –

Powiązane problemy