ページエクスポーター the-page-exporter
Adobe Experience Manager(AEM)を使用すると、画像ファイル、.js
ファイル、.css
ファイルを含む完全な web ページとして、ページをエクスポートできます。
設定が完了したら、URL の html
を export.zip
に置き換えることにより、ページのエクスポートをブラウザーからリクエストします。これにより、HTML 形式でレンダリングされたページと参照元のアセットを含む、アーカイブ(zip)ファイルが生成されます。ページ内のすべてのパス(例えば、画像へのパス)は、アーカイブに含まれるファイルまたはサーバー上のリソースを指すように書き換えられます。アーカイブ(zip)ファイルは、ブラウザーからダウンロードできます。
- アーカイブファイル(
<page-name>.export.zip
) - フォルダー(
<page-name>
)(アーカイブファイルを実際に展開済み)
ページのエクスポート exporting-a-page
次の手順では、ページをエクスポートする方法を説明します。サイトにエクスポートテンプレートが存在すると仮定しています。エクスポートテンプレートは、ページをエクスポートする方法を定義したものであり、サイトに固有のものです。エクスポートテンプレートを作成するには、サイト用のページエクスポーター設定の作成の節を参照してください。
ページをエクスポートするには:
-
Sites コンソールで、対象のページに移動します。
-
ページを選択して、「プロパティ」ダイアログを開きます。
-
「詳細」タブを選択します。
-
「エクスポート」フィールドを展開して、エクスポートテンプレートを選択します。
サイトに必要なテンプレートを選択し、「OK」で確定します。 -
「保存して閉じる」を選択して、ページプロパティのダイアログを閉じます。
-
ページのエクスポートをリクエストし、URL のサフィックス
html
をexport.zip
に置き換えます。次は例です。
- localhost:4502/content/we-retail/language-masters/en.html
次の方法でアクセスされます。
- localhost:4502/content/we-retail/language-masters/en.export.zip
-
アーカイブファイルをファイルシステムにダウンロードします。
-
ファイルシステムで、必要に応じてそのファイルを解凍します。展開すると、選択したページと同じ名前のフォルダーが作成されます。このフォルダーには次が含まれます。
-
サブフォルダー
content
(リポジトリ内のページへのパスを反映した一連のサブフォルダーのルート)- この構造の中にある、選択したページの HTML ファイル(
<page-name>.html
)
- この構造の中にある、選択したページの HTML ファイル(
-
その他のリソース(
.js
ファイル、.css
ファイル、画像など)。エクスポートテンプレートの設定に従って配置されます。
-
-
ページの HTML ファイル(
<unzip-dir>/<path>/<to>/<page>/<page-path>.html
)をブラウザーで開き、レンダリングを確認します。
サイト用のページエクスポーター設定の作成 creating-a-page-exporter-configuration-for-your-site
ページエクスポーターは、コンテンツ同期フレームワークに基づいています。「ページプロパティ」ダイアログで利用できる設定は、ページに必要な依存関係を定義するエクスポートテンプレートです。
ページのエクスポートがトリガーされると、エクスポートテンプレートが参照され、ページパスとデザインパスの両方が動的に適用されます。その後、標準のコンテンツ同期機能を使用して、zip ファイルが作成されます。
標準インストールの AEM では、/etc/contentsync/templates/default
の下にデフォルトテンプレートが含まれています。
-
このテンプレートは、リポジトリ内にエクスポートテンプレートが見つからない場合のフォールバックテンプレートです。
-
default
テンプレートは、ページをエクスポートするための設定方法を示していて、新しいエクスポートテンプレートのベースとして使用できます。 -
テンプレートのノード構造を JSON 形式でブラウザーに表示するには、次の URL をリクエストします。
http://localhost:4502/etc/contentsync/templates/default.json
新しいページエクスポーターのテンプレートは、次の方法で簡単に作成できます。
-
default
テンプレートをコピーします。 -
サイトに適した新しい名前を割り当て、
-
その上で、必要な更新を行います。
完全に新しいテンプレートを作成するには:
-
CRXDE Lite で、
/etc/contentsync/templates
の下にノードを作成します。-
Name
:サイトに適した名前(例:<mysite>
)。ページエクスポーターテンプレートを選択すると、この名前がページプロパティのダイアログボックスに表示されます。 -
Type
:nt:unstructured
-
-
テンプレートノード(ここでは
mysite
)の下に、次で説明する設定ノードを使用してノード構造を作成します。
ページのページエクスポーターテンプレートのアクティブ化 activating-a-page-exporter-configuration-for-your-pages
テンプレートを設定したら、使用可能にします。
-
CRXDE で
/content
ブランチの対象ページに移動します。個々のページや、サブツリーのルートページの場合があります。 -
ページの
jcr:content
ノードで、次のプロパティを作成します。Name
:cq:exportTemplate
Type
:String
Value
:テンプレートへのパス(例:/etc/contentsync/templates/mysite
)
ページエクスポーター設定ノード page-exporter-configuration-nodes
コンテンツ同期フレームワークを使用しているため、テンプレートはノード構造で構成されています。各ノードには、zip ファイルの作成プロセスで特定のアクションを定義する type
プロパティが含まれています。
次のノードを使用してエクスポートテンプレートを作成することができます。
-
page
page ノードを使用して、ページの HTML を zip ファイルにコピーします。次のような特徴があります。- 必須ノード。
/etc/contentsync/templates/<mysite>
の下にある。- プロパティ
Name
をpage
に設定して定義されている。 - ノードタイプは
nt:unstructured
。
page
ノードには以下のプロパティがあります。-
値
pages
が設定されたtype
プロパティ。 -
path
プロパティはありません。現在のページパスが設定に動的にコピーされます。
-
rewrite
rewrite ノードでは、エクスポートしたページでリンクを書き換える方法を定義します。書き換え後のリンクは、zip ファイルに含まれるファイルを指すか、サーバー上のリソースを指します。 -
design
design ノードを使用して、エクスポートされるページに使用されているデザインをコピーします。次のような特徴があります。- オプション。
/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 ファイルにコピーします。code language-xml "mysite.clientlibs.js": { "extension": "js", "type": "clientlib", "path": "/etc/designs/mysite/clientlibs", "jcr:primaryType": "nt:unstructured" }
カスタム設定の実装
カスタム設定も可能です。
特定の要件を満たすには、カスタム更新ハンドラーを実装する必要があります。
プログラムによるページの書き出し programmatically-exporting-a-page
プログラムによってページを書き出すには、PageExporter OSGI サービスを使用できます。このサービスを使用すると、次のことができます。
- ページを書き出して HTTP サーブレット応答に書き込む。
- ページを書き出して zip ファイルを特定の場所に保存する。
export
セレクターおよび zip
拡張子にバインドされているサーブレットは PageExporter サービスを使用します。
トラブルシューティング troubleshooting
Zip ファイルのダウンロードで問題が発生した場合は、リポジトリで /var/contentsync
ノードを削除して、エクスポートリクエストを再度送信できます。