2012-10-24 4 views
15

Ho provato ad aggiungere più categorie per incorporare [] e dipendenze [] in modo intercambiabile molte volte. Ma vedo sempre un errore di risoluzione delle dipendenze in JavaScript sul sito web.Qual è la differenza tra incorporare [] e dipendenze [] per tipo ClientLibraryFolder?

Inoltre, come si specifica l'ordine delle categorie in una voce con più valori come embed []? C'è un modo per controllare l'ordine della sorgente JavaScript che viene caricata durante il lancio del sito web?

risposta

27

categories è l'elenco di identificativi per pubblicare un clientlib sotto.

dependencies dovrebbe causare la pagina per avere le richieste in più per altre clientlibs (esterno "subscribe")

embed dovrebbe "aggregato" quegli altri clientlibs nel clientlib corrente (interni iscriviti)

entrambe le proprietà può avere più valori e l'interfaccia CRXDE Lite consente di modificare l'ordine degli articoli nella lista valori.

Clientlibs proprio:

  • /etc/clientlibs/categorie DEPA = [ "DEPA"]
  • /etc/clientlibs/categorie DEPB = [ "DEPB"]
  • /etc/clientlibs/categorie DEPC = [ "DEPC"]
  • /etc/clientlibs/USEA categorie = [ "USEA"], le dipendenze = [ "DEPA", "DEPB"]
  • /etc/clientlibs/useB categorie = [ "useB "], embed = [" depB "," depC "]

Se una pagina utilizza "USEA" <cq:includeClientLib categories="useA"/>, quindi il codice HTML dovrebbe avere richieste di Depa, DEPB, USEA (attraverso i loro URL appropriati, cioè /etc/clientlibs/depA.css

Se una pagina utilizza dei "useB" <cq:includeClientLib categories="useB"/>, poi il codice HTML dovrebbe hai solo una richiesta per l'usoB. Il contenuto di /etc/clientlibs/useB.css sarebbe la concatenazione di contenuti di depB, depC, useB.

Il gestore di libreria in {localhost} /system/console/configMgr/com.day.cq.widget.impl.HtmlLibraryManagerImpl ha una configurazione di debug per determinare se le richieste sono concatenate EFFETTIVAMENTE. Questo è documentato in http://dev.day.com/docs/en/cq/current/deploying/configuring_osgi.html#par_variable_18

Per definire più dipendenze (supponendo che si sta utilizzando Maven per costruire dal vostro file system ed installare in CQ5), la cartella clientlibs avrà un file ".content.xml" che ha bisogno il seguente attributo:

dependencies="[depB,depC]" 
+0

Incredibile spiegazione! – Oliver

+9

Tuttavia manca un dettaglio: le dipendenze sono transitive, le incorporazioni non lo sono. Esempi: A dipende da B che incorpora C -> C + B e A sono caricati. Un embed B che dipende da C -> B + A sono caricati, C no. Questo può essere complicato se si desidera incorporare alcune librerie CQ (per richiedere un singolo JS) e tali librerie dipendono da altre librerie CQ. È quindi necessario incorporarli tutti, nell'ordine corretto. –

+0

Dovrei aggiungere che 'categorie' intendono astrarre dalla struttura della directory.Pertanto, NON è utile creare etichette di categorie che essenzialmente imitano le cartelle. –

Problemi correlati