ページエクスポーター

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

設定が完了したら、URLのhtmlexport.zipに置き換えて、ブラウザーからページエクスポートを要求します。 これにより、HTML形式でレンダリングされたページと参照先のアセットが含まれたアーカイブ(zip)ファイルが生成されます。 ページ内のすべてのパス(例えば、画像へのパス)が、アーカイブに含まれるファイルまたはサーバー上のリソースを指すように書き直されます。 アーカイブ(zip)ファイルをブラウザーからダウンロードできます。

メモ

ブラウザーと設定に応じて、ダウンロードは次のいずれかになります。

  • アーカイブファイル(<page-name>.export.zip)
  • フォルダー(<page-name>);効果的にアーカイブ・ファイルは既に拡張済み

ページの書き出し

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

ページを書き出すには:

  1. サイト​コンソールの必要なページに移動します。

  2. ページを選択し、プロパティ​ダイアログを開きます。

  3. 詳細」タブを選択します。

  4. エクスポート」フィールドを展開して、エクスポートテンプレートを選択します。
    サイトに必要なテンプレートを選択し、OK​で確認します。

  5. 保存して閉じる」を選択して、ページのプロパティダイアログを閉じます。

  6. ページの書き出しを要求し、URLのサフィックスhtmlexport.zipに置き換えます。

    次に例を示します。

    • localhost:4502/content/we-retail/language-masters/en.html

    次を介してアクセス:

    • localhost:4502/content/we-retail/language-masters/en.export.zip
  7. アーカイブファイルをファイルシステムにダウンロードします。

  8. ファイルシステムで、必要に応じてファイルを解凍します。 展開すると、選択したページと同じ名前のフォルダーが作成されます。 このフォルダーには次が含まれます。

    • サブフォルダーcontent。リポジトリ内のページへのパスを反映した一連のサブフォルダーのルートです

      • この構造内には、選択されたページ(<page-name>.html)のhtmlファイルがあります
    • その他のリソース(.jsファイル、.cssファイル、画像など) は、書き出しテンプレートの設定に従って配置されます。

  9. ブラウザーでページhtmlファイル(<unzip-dir>/<path>/<to>/<page>/<page-path>.html)を開き、レンダリングを確認します。

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

ページエクスポーターは、コンテンツ同期フレームワークに基づいています。 ページプロパティ​ダイアログで使用できる設定は、ページに必要な依存関係を定義する書き出しテンプレートです。

ページの書き出しがトリガーされると、書き出しテンプレートが参照され、ページパスとデザインパスの両方が動的に適用されます。 その後、標準のコンテンツ同期機能を使用してzipファイルを作成します。

標準搭載のAEMインストールには、/etc/contentsync/templates/defaultの下にデフォルトのテンプレートが含まれています。

  • このテンプレートは、リポジトリにエクスポートテンプレートが見つからない場合のフォールバックテンプレートです。

  • defaultテンプレートは、ページエクスポートの設定方法を示し、新しい書き出しテンプレートのベースとして機能します。

  • テンプレートのノード構造をJSON形式で表示するには、次のURLを要求します。
    http://localhost:4502/etc/contentsync/templates/default.json

新しいページエクスポーターテンプレートを作成する最も簡単な方法は次のとおりです。

  • defaultテンプレートをコピーし、

  • サイトに適した新しい名前を割り当て、

  • 次に、必要な更新を行います。

完全に新しいテンプレートを作成するには:

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

    • Name:サイトに適した名前例えば、 <mysite>。ページエクスポーターテンプレートを選択すると、ページプロパティダイアログに名前が表示されます。

    • Type: nt:unstructured

  2. テンプレートノード(ここでは mysite)の下に、以下で説明する設定ノードを使用してノード構造を作成します。

ページのページエクスポータテンプレートのアクティブ化

テンプレートを設定したら、使用可能にする必要があります。

  1. CRXDEで、/contentブランチの必要なページに移動します。 これは、個々のページ、またはサブツリーのルートページにすることができます。

  2. ページのjcr:contentノードで、プロパティを作成します。

    • Name: cq:exportTemplate
    • Type: String
    • Value:テンプレートのパス例: /etc/contentsync/templates/mysite

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

テンプレートは、コンテンツ同期フレームワークを使用するノード構造で構成されます。 各ノードにはtypeプロパティがあり、zipファイルの作成プロセスでの特定のアクションを定義します。

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

  • pagepage ノードは、ページの HTML を zip ファイルにコピーする際に使用します。次のような特徴があります。

    • 必須ノードである。
    • /etc/contentsync/templates/<mysite>の下に配置されています。
    • Nameプロパティをpageに設定して定義します。
    • ノードタイプはnt:unstructuredです

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

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

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

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

  • designdesign ノードは、書き出されるページに使用されているデザインをコピーする際に使用します。次のような特徴があります。

    • オプションである。
    • /etc/contentsync/templates/<mysite>の下に配置されています。
    • Nameプロパティをdesignに設定して定義します。
    • ノードタイプは nt:unstructured です。

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

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

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

  • generic
    汎用ノードは、clientlibsのようなリソースのコピーに使用されます。
    .js または .css ファイルをzipファイルに保存します。次の特性を持ちます。

    • オプションである。
    • /etc/contentsync/templates/<mysite>の下に配置されています。
    • 特定の名前を持たない。
    • ノードタイプは nt:unstructured です。
    • typeプロパティとtype関連するプロパティがあります。

    例えば、次の設定ノードはmysite.clientlibs.jsファイルをzipファイルにコピーします。

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

カスタム設定の実装

カスタム設定も可能です。

特定の要件を満たすには、カスタム更新ハンドラを実装する必要がある場合があります。

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

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

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

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

トラブルシューティング

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

このページ