2012-10-24 17 views
15

私は、複数のカテゴリを[]と依存関係[]に入れ替えることを何度も追加しようとしました。しかし、私はいつもウェブサイト上のJavaScriptの依存関係解決エラーが表示されます。タイプClientLibraryFolderのembed []と依存関係[]の違いは何ですか?

また、embed []などの複数値エントリにカテゴリの順序を指定するにはどうすればよいですか?ウェブサイトの起動時にロードされるJavaScriptソースの順序を制御できる方法はありますか?

答えて

27

categoriesは、クライアントライブラリを公開するための識別子のリストです。

dependenciesは(外部の "購読")

embedは、 "集約"、現在clientlib INTOそれらの他のclientlibs(内部がサブスクライブ)する必要があり

の両方の性質 clientlibsに余分な要求を持っているあなたのページを起こさなければなりません複数の値を持つことができ、CRXDE Liteインターフェイスでは値リストの項目の順序を変更できます。

考えるClientlibs:

  • の/ etc/clientlibs/DEPAカテゴリ= [ "DEPA"]
  • の/ etc/clientlibs/depBカテゴリ= [ "depB"]
  • の/ etc/clientlibs/DEPCカテゴリ= [ "DEPC"]
  • の/ etc/clientlibs/useAカテゴリ= [ "useA"]、依存性= [ "DEPA"、 "depB"]
  • の/ etc/clientlibs/useBカテゴリ= [ "useB "]、embed = [" depB "、" depC "]

ページは "useA" <cq:includeClientLib categories="useA"/>を使用している場合、ページが "useB" <cq:includeClientLib categories="useB"/>を使用している場合、HTMLはその後、HTMLがすべき、彼らの適切なURLを通過(すなわち/etc/clientlibs/depA.css

をuseAをDEPA、depBの要求を持っている必要がありますuseBのみを要求する。 /etc/clientlibs/useB.cssの内容は、depB、depC、useBの内容を連結したものになります。

{localhost} /system/console/configMgr/com.day.cq.widget.impl.HtmlLibraryManagerImplのライブラリマネージャには、要求が実際に連結されているかどうかを判断するためのデバッグ設定があります。

:これは(あなたがあなたのファイルシステムから構築し、CQ5にインストールするには、Mavenを使用していると仮定して)複数の依存関係を定義するには http://dev.day.com/docs/en/cq/current/deploying/configuring_osgi.html#par_variable_18

で文書化され、clientlibsフォルダには、次の属性を必要とするファイル「.content.xml」を持つことになります

dependencies="[depB,depC]" 
+0

すばらしい説明! – Oliver

+9

しかし、1つの詳細が欠落しています。依存関係は推移的ですが、埋め込みはできません。 例: AはC - > C + Bが埋め込まれたBに依存し、Aが読み込まれます。 C - > B + Aに依存する埋め込みBがロードされ、Cはロードされません。 (1つのJSを要求するために)いくつかのCQライブラリを埋め込みたい場合や、それらのライブラリが他のCQライブラリに依存している場合、これは難しいことがあります。その後、すべてを正しい順序で埋め込む必要があります。 –

+0

'categories'は、ディレクトリ構造から抽象化することを意図したものです。したがって、基本的にフォルダを模倣するカテゴリラベルを作成することは役に立ちません。 –

関連する問題