ページエクスポーター

AEM では、画像、.js ファイルおよび .css ファイルを含む完全な Web ページとしてページを書き出すことができます。

書き出しが設定されたら、ブラウザーでページを要求します。その際には、URLのhtmlexport.zipに置き換え、html形式でレンダリングされたページと参照アセットを含むzipファイルのダウンロードを取得します。 ページ内のすべてのパス(画像へのパスなど)が、zipファイルに含まれるファイルまたはサーバー上のリソースを指すように書き換えられます。

ページの書き出し

次の手順では、ページを書き出す方法、およびサイトに書き出し設定テンプレートが存在すると仮定します。設定テンプレートは、ページの書き出し方法を定義し、サイトに固有のものです。設定テンプレートを作成する方法については、「サイトのページエクスポーター設定の作成」を参照してください。

ページを書き出すには:

  1. ブラウザーで、ページを開きます。次に例を示します。

  2. http://localhost:4502/content/geometrixx/en/products/triangle.html

  3. ページのプロパティダイアログを開き、「詳細」タブを選択して、「書き出し」フィールドセットを展開します。

  4. 虫眼鏡のアイコンをクリックして設定テンプレートを選択します。Geometrixx サイトのデフォルトである geometrixx テンプレートを選択します。「OK」をクリックします。

  5. OK」をクリックしてページのプロパティダイアログを閉じます。

  6. URLのhtmlexport.zipに置き換えて、ページをリクエストします。

  7. <page-name>.export.zipファイルをファイルシステムにダウンロードします。

  8. ファイルシステムで、ファイルを解凍します。

    • ページhtmlファイル(<page-name>.html)は<unzip-dir>/<page-path>の下にあります
    • 書き出しテンプレートの設定に従って、その他のリソース(.jsファイル、.cssファイル、画像など)が配置されます。 この例では、リソースの一部が<unzip-dir>/etcより下、一部が<unzip-dir>/<page-path>より下にあります。
  9. ブラウザーでページhtmlファイル(<unzip-dir>/<page-path>.html)を開き、レンダリングを確認します。

サイト用のページエクスポーター設定の作成

ページエクスポーターは、コンテンツ同期フレームワークに基づいています。ページプロパティダイアログで使用できる設定は、設定テンプレートです。ページに必要なすべての依存関係を定義します。ページの書き出しがトリガーされると、設定テンプレートが使用され、ページパスとデザインパスの両方が設定に動的に適用されます。その後、標準のコンテンツ同期機能を使用してzipファイルを作成します。

AEM では、以下を含むいくつかのテンプレートが埋め込まれます。

  • /etc/contentsync/templates/defaultのデフォルト値です。このテンプレート:

    • リポジトリ内に設定テンプレートが見つからない場合のフォールバックテンプレートです。
    • 新しい設定テンプレートのベースとして機能します。
  • Geometrixx​サイト専用のデータ(/etc/contentsync/templates/geometrixx)。このテンプレートは、新しいテンプレートを作成する例として使用できます。

ページエクスポーター設定テンプレートを作成するには:

  1. CRXDE Lite​に、/etc/contentsync/templatesの下にノードを作成します。

    • 名前:例えばmysite.ページエクスポーターテンプレートを選択すると、ページプロパティダイアログに名前が表示されます。
    • 型:nt:unstructured
  2. テンプレートノード(ここでは mysite)の下に、以下で説明する設定ノードを使用してノード構造を作成します。

ページエクスポーター設定ノード

設定テンプレートは、ノード構造で構成されます。 各ノードにはtypeプロパティがあり、zipファイルの作成プロセスでの特定のアクションを定義します。 typeプロパティの詳細については、コンテンツ同期フレームワークページの「設定タイプの概要」の節を参照してください。

書き出し設定テンプレートを作成するには、以下のノードを使用できます。

page nodeページノードは、ページhtmlをzipファイルにコピーするために使用されます。次の特性を持ちます。

  • 必須ノードである。
  • /etc/contentsync/templates/<sitename>の下に配置されています。
  • 名前はpageです。
  • ノードタイプはnt:unstructuredです

page ノードには以下のプロパティがあります。

  • pagesで設定されたtypeプロパティ。

  • path プロパティはありません。現在のページパスが設定に動的にコピーされます。

  • その他のプロパティは、コンテンツ同期フレームワークの「設定の種類の概要」セクションに説明されています。

rewrite ノードrewriteノードは、書き出されたページでリンクが書き換えられる方法を定義します。書き換え後のリンクは、zip ファイルに含まれるファイルまたはサーバー上のリソースを指すことができます。

rewrite ノードについて詳しくは、コンテンツ同期ページを参照してください。

デザイン ノードデザインノードは、書き出したページで使用されるデザインのコピーに使用されます。次の特性を持ちます。

  • オプションである。
  • /etc/contentsync/templates/<sitename>の下に配置されています。
  • 名前はdesignです。
  • ノードタイプはnt:unstructuredです。

design ノードには以下のプロパティがあります。

  • copyに設定されたtypeプロパティ。

  • path プロパティはありません。現在のページパスが設定に動的にコピーされます。

汎用 ノードclientlibs .jsや.cssファイルなどのリソースをzipファイルにコピーする場合に使用する汎用ノードです。次の特性を持ちます。

  • オプションである。
  • /etc/contentsync/templates/<sitename>の下に配置されています。
  • 特定の名前を持たない。
  • ノードタイプはnt:unstructuredです。
  • コンテンツ同期フレームワークの「設定の種類の概要」で定義されているtypeプロパティとtype関連するプロパティがあります。

例えば、以下の設定ノードでは、geometrixx クライアントライブラリの .js ファイルを zip ファイルにコピーします。

"geometrixx.clientlibs.js": {
    "extension": "js",
    "type": "clientlib",
    "path": "/etc/designs/geometrixx/clientlibs",
    "jcr:primaryType": "nt:unstructured"
}

Geometrixx ページ書き出し設定テンプレートを見ると、ページ書き出しの設定方法がわかります。テンプレートのノード構造をブラウザーで json 形式で表示するには、以下の URL を要求します。

http://localhost:4502/etc/contentsync/templates/geometrixx.-1.json

カスタム設定の実装

ノード構造に気付いたかもしれませんが、Geometrixx​ページエクスポート設定テンプレートにはlogoノードがあり、typeプロパティがimageに設定されています。 これは、画像のロゴをzipファイルにコピーするために作成された特別な設定タイプです。 特定の要件を満たすには、カスタムtypeプロパティを実装する必要がある場合があります。これを行うには、コンテンツの同期ページの「カスタム更新ハンドラーの実装」の節を参照してください。

プログラムによるページの書き出し

プログラムによってページを書き出すには、PageExporter OSGI サービスを使用できます。このサービスを使用すると、次のことが可能です。

  • ページを書き出して HTTP サーブレット応答に書き込む。
  • ページを書き出して zip ファイルを特定の場所に保存する。

export セレクターおよび zip 拡張子にバインドされているサーブレットは PageExporter サービスを使用します。

トラブルシューティング

zipファイルのダウンロードに問題が発生した場合は、リポジトリの/var/contentsyncノードを削除して、再度エクスポートリクエストを送信できます。

このページ