カスタムページデプロイヤで変換されたHTMLページにアクセスする方法
-
12-12-2019 - |
質問
カスタムデプロイヤの公開ページの内容にアクセスする必要があるとしましょう。 このコードのこの部分は、PageDeployクラスを拡張するCustomModuleにあるProcessPageメソッドの内側にあります。
このように私は公開されているページを取得しますが、そのページの内容は変換されません(そのページにあるコンポーネントはレンダリングされていません)。
public void processPage(Page page, File pageFile) throws ProcessingException {
File file = new File(pageFile.toString());
}
.
CD_DEPLOYER.CONF.XMLのトランスポッションのクリーンアップを無効にすることができれば、クリーンアップをfalseに変更することで:<WorkFolder Location="C:\tridion\work" Cleanup="false"/>,
Tridionは私のページの2つのバージョンを生成するのを見ます:
- root \ page.html(Path PageFile.ToString())を使用して、未受信コンテンツがあります。
- root \ fortronmed \ page.html(完全なコンテンツ - 私が欲しいコンテンツ)
変換されたページファイルのパスを使用して新しいファイルを作成して読み取るのはなぜなのか、オリジナルのHTMLのコンテンツでHTMLコードを取得しますか?展開ページのこの段階ではまだレンダリングされていないか、または...?
ありがとう!
解決
動的コンポーネントのプレゼンテーションを使用しているページはありますか?もしそうであれば、公開され展開されているページレベルのHTMLは、コンポーネントプレゼンテーションの「インクルード命令」のみを含みます。
<tcdl:ComponentPresentation ... />
.
展開中に起こる唯一のものは、公開/トランスポート中に使用される「Technology Annostic」言語がJSPタグまたはASP.Netサーバーコントロールのいずれかに変換されています。 。
動的コンポーネントプレゼンテーション自体のHTMLフラグメントは別々に公開され、設定されたストレージ内の別の項目として格納されます。
完全なHTMLは、ページが要求されたときにのみ構成されます(訪問者にサービスを提供するため)。その段階で、JSPタグライブラリまたはASP.NET Serverコントロールが呼び出され、ストレージからコンポーネントプレゼンテーションのHTMLフラグメントを読み、それをページのHTMLの "Wireframe"に注入します。
その知識では、Deployerの拡張子の動的コンポーネントのプレゼンテーションのHTMLフラグメントを見つけることができない理由を説明します.PageシェルへのDCPフラグメントのマージは、ページが要求されたときにのみ発生します。展開されました。