6

Razorテンプレートを使用してTridionからバイナリ(PDFファイル)を公開する際に問題が発生しました。

単一のリンクされたマルチメディアスキーマで「動的コンポーネントとして公開」に設定されたコンポーネントテンプレートがあります。

Razor Mediator eXtensionを使用していますが、コンポーネントテンプレートには2つのテンプレートビルディングブロックが含まれています。

  1. マルチメディアコンポーネントのHTMLとバイナリへのリンクを出力するRazorテンプレート。
  2. 以下を含むデフォルトの終了アクション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は、コードを正しくフォーマットすることを望んでいませんでした。

4

3 に答える 3

7

残念ながら、Razor Mediatorは現在、タグ内にあるときにPDFバイナリをパッケージに追加しません(したがって、Publish Binaries TBBによって取得されません)が、バージョン1.3がこれを処理することはかなり良い感じです;) 。

それまでの間、「未解決のバイナリ依存関係の追加」タイプのTBBを使用できます。現時点では手元にありませんが、必要な場合はお知らせください。今夜遅くにコードを投稿します。

編集 パッケージに追加されないという私の声明をキャンセルしてください、私は別のシナリオを考えていました。

代わりに次を試してください。

<a href="@Component.ID">@Component.Metadata.title</a>
于 2012-04-26T13:06:37.090 に答える
2

これは私のために働いた:

@{ 
  var item = TridionHelper.Package.CreateMultimediaItem(Component.ID);
  TridionHelper.Package.PushItem("CurrentMultimedia", item);
}

もちろん、その後にPublishBinariesInPackageが続きますが、同様の方法でエンジンに到達できるため、おそらく直接AddBinaryも機能します。

于 2012-11-06T15:35:09.260 に答える
0

Razor Mediatorを使用したことはありませんが、Default Finish ActionsまたはPublish Binaries in PackageTBBをテンプレートに追加してみましたか?

于 2012-04-18T13:55:50.330 に答える