Razorテンプレートを使用してTridionからバイナリ(PDFファイル)を公開する際に問題が発生しました。
単一のリンクされたマルチメディアスキーマで「動的コンポーネントとして公開」に設定されたコンポーネントテンプレートがあります。
Razor Mediator eXtensionを使用していますが、コンポーネントテンプレートには2つのテンプレートビルディングブロックが含まれています。
- マルチメディアコンポーネントのHTMLとバイナリへのリンクを出力するRazorテンプレート。
- 以下を含むデフォルトの終了アクションTBB:
- パッケージでバイナリを公開する
- リンクリゾルバー
- ターゲットグループのパーソナライズ
- クリーンアップテンプレート
- XmlをHTMLに変換する
Razorテンプレートには、次のコードが含まれています(これを少し簡略化しました)。
これにより、バイナリリンクが正しく解決されているように見え、次の動的コンポーネントプレゼンテーションが生成されます。
私が抱えている問題は、バイナリ自体がパッケージに追加されないため、公開されないことです。
Razor MediatorのTridion.ContentManager.configファイルには「extractBinaries」設定があるため、メディエーターによってバイナリをパッケージに追加する必要があると思われます。extractBinaries設定が「true」に設定されていることを確認しましたが、バイナリはパッケージに追加されていません(ただし、処理中のマルチメディアコンポーネントはtridion /コンポーネントアイテムとしてパッケージにあります)。
この機能が利用可能であり、Razor Mediatorで機能しているかどうかを誰かが知っていますか?Razor Mediatorは、リンクコードが特定の形式であることを期待していると思われますが、ドキュメントでこれについて何も見つかりません。
'Extract Binaries from Html' TBBをコンポーネントテンプレート(Razorテンプレートに続く)に追加しようとしましたが、次のエラーが発生します: 「アイテムの出力にはプロパティTCMURIが指定されている必要があります」。これは、RazorMediatorが「出力」アイテムをパッケージに追加している方法によるものと思われます。
バイナリがパッケージに追加されていることを確認するために新しいTBBを作成することもできますが、Razor Mediatorで機能がすでに利用可能である場合は、これを避けたいと思います。
前もって感謝します。
PS画像のお詫び。Stackoverflowは、コードを正しくフォーマットすることを望んでいませんでした。