AEMでは、画像、.js
、.css
ファイルを含む完全なWebページとしてページを書き出すことができます。
設定が完了したら、URLのhtml
をexport.zip
に置き換えて、ブラウザーからページエクスポートを要求します。 これにより、HTML形式でレンダリングされたページと参照先のアセットが含まれたアーカイブ(zip)ファイルが生成されます。 ページ内のすべてのパス(例えば、画像へのパス)が、アーカイブに含まれるファイルまたはサーバー上のリソースを指すように書き直されます。 アーカイブ(zip)ファイルをブラウザーからダウンロードできます。
ブラウザーと設定に応じて、ダウンロードは次のいずれかになります。
<page-name>.export.zip
)<page-name>
);効果的にアーカイブ・ファイルは既に拡張済み次の手順では、ページを書き出す方法、およびサイトに書き出しテンプレートが存在すると仮定します。 書き出しテンプレートは、ページの書き出し方法を定義し、サイトに固有のものです。 書き出しテンプレートを作成する方法については、「サイトのページエクスポーター設定の作成」を参照してください。
ページを書き出すには:
サイトコンソールの必要なページに移動します。
ページを選択し、プロパティダイアログを開きます。
「詳細」タブを選択します。
「エクスポート」フィールドを展開して、エクスポートテンプレートを選択します。
サイトに必要なテンプレートを選択し、OKで確認します。
「保存して閉じる」を選択して、ページのプロパティダイアログを閉じます。
ページの書き出しを要求し、URLのサフィックスhtml
をexport.zip
に置き換えます。
次に例を示します。
次を介してアクセス:
アーカイブファイルをファイルシステムにダウンロードします。
ファイルシステムで、必要に応じてファイルを解凍します。 展開すると、選択したページと同じ名前のフォルダーが作成されます。 このフォルダーには次が含まれます。
サブフォルダーcontent
。リポジトリ内のページへのパスを反映した一連のサブフォルダーのルートです
<page-name>.html
)のhtmlファイルがありますその他のリソース(.js
ファイル、.css
ファイル、画像など) は、書き出しテンプレートの設定に従って配置されます。
ブラウザーでページ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
テンプレートをコピーし、
サイトに適した新しい名前を割り当て、
次に、必要な更新を行います。
完全に新しいテンプレートを作成するには:
CRXDE Liteに、/etc/contentsync/templates
の下にノードを作成します。
Name
:サイトに適した名前例えば、 <mysite>
。ページエクスポーターテンプレートを選択すると、ページプロパティダイアログに名前が表示されます。
Type
: nt:unstructured
テンプレートノード(ここでは mysite
)の下に、以下で説明する設定ノードを使用してノード構造を作成します。
テンプレートを設定したら、使用可能にする必要があります。
CRXDEで、/content
ブランチの必要なページに移動します。 これは、個々のページ、またはサブツリーのルートページにすることができます。
ページのjcr:content
ノードで、プロパティを作成します。
Name
: cq:exportTemplate
Type
: String
Value
:テンプレートのパス例: /etc/contentsync/templates/mysite
テンプレートは、コンテンツ同期フレームワークを使用するノード構造で構成されます。 各ノードにはtype
プロパティがあり、zipファイルの作成プロセスでの特定のアクションを定義します。
書き出しテンプレートの作成には、次のノードを使用できます。
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ファイルにコピーします。
"mysite.clientlibs.js": {
"extension": "js",
"type": "clientlib",
"path": "/etc/designs/mysite/clientlibs",
"jcr:primaryType": "nt:unstructured"
}
カスタム設定の実装
カスタム設定も可能です。
特定の要件を満たすには、カスタム更新ハンドラを実装する必要がある場合があります。
プログラムによってページを書き出すには、PageExporter OSGI サービスを使用できます。このサービスを使用すると、次のことが可能です。
export
セレクターおよび zip
拡張子にバインドされているサーブレットは PageExporter サービスを使用します。
zipファイルのダウンロードに問題が発生した場合は、リポジトリの/var/contentsync
ノードを削除して、再度エクスポートリクエストを送信できます。