1. CDNに関する考慮事項

Sitecore Media Library CDNサポートに関する開発者向けの考慮事項

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このリファレンスには、Sitecore Media Library Content Delivery Network (CDN) のサポートに関連する設定、パイプライン、および詳細に関する情報が含まれています。

CDN対応のメディアアイテムURLの取得

Sitecore Media LibraryにCDNを使用する場合、ページのメディア アイテムURLはCDN URLで始まる絶対URLである必要があり、そうしないとSitecore CDサーバーがCDNサーバーだけでなく、すべてのリクエストに応答します。

メディア アイテムのURLがSitecoreメディア ライブラリを尊重するように、次の表の設定を使用してメディア アイテムをアドレス指定できます。

設定

説明とコード サンプル

MediaManager

MediaManager.GetMediaUrlを使用して、アイテムのCDN対応URLを取得します。

<%
    Sitecore.Data.Items.Item item = Sitecore.Context.Database.GetItem("path to media item");
%>
<img src="<%=Sitecore.Resources.Media.MediaManager.GetMediaUrl(item)%>"/>

sc:Imageタグ

アイテムにImageフィールドがある場合は、sc:Imageタグを使用して画像をレンダリングし、CDN対応のURLを持つことができます。

<sc:Image ID="image1" Field="ImageFieldName" MaxWidth="100" runat="server" />

sc:Linkタグ

アイテムにImage フィールドがある場合は、sc:Image タグを使用して画像をレンダリングし、CDN対応のURLを持つことができます。

<sc:Link ID="link1" Field="LinkFieldName" runat="server" />

sc:FieldRendererタグ

アイテムにLink フィールドまたはImage フィールドがある場合は、このタグを使用してリンクをレンダリングし、CDN対応のURLを持つことができます。

<sc:FieldRenderer ID="image1" FieldName="ImageFieldName" Parameters="w=100" runat="server" />
<sc:FieldRenderer ID="link1" FieldName="LinkFieldName" runat="server" />

RichText フィールドのメディア項目

リッチテキストエディタを使用してRichText フィールドにMediaItem を挿入すると、メディアアイテムは実行時にCDN対応URLを使用してレンダリングされます。

メモ

Sitecoreコンテンツ エディターを使用していて、実行時にCDN対応のURLを使用してメディア アイテムをレンダリングする場合は、上記の表の設定を使用しないでください。代わりに、リッチ テキスト エディターを使用して、RichTextフィールドにMediaItemを挿入します。

パイプラインとプロセッサ

パイプラインgetMediaUrlOptionsメディアアイテムURLの生成に影響を与え、getResponseCacheHeadersパイプラインはレスポンスキャッシュヘッダーの設定に影響します。

手記

他のモジュールは、要件に応じて一部のプロセッサを追加する場合があります。

getMediaUrlOptions

このパイプラインを使用すると、メディアURLを取得するプロセッサを追加し、メディア項目のURLの生成方法を制御できます。たとえば、開発者がMediaManager.GetMediaUrlを呼び出すと、プロセッサ内のMediaUrlOptionsを操作できます。このパイプラインでは、次のプロセッサがAlwaysIncludeServerUrlに影響を与えます。

  • SecurityProcessor - これは、パイプライン引数によって提供されたMediaUrlOptionsにセキュリティ上の問題を適用します。項目がパブリックに読み取り可能でない場合、SecurityProcessorは のAlwaysIncludeServerUrlの値をfalseに設定します。ただし、開発者コードまたは別のパイプラインによって明示的に割り当てられていない限り。

  • SiteModeProcessor - これにより、パイプライン引数によって提供されたMediaUrlOptionsにサイト モードの問題が適用されます。サイト モードが正常でない場合は、AlwaysIncludeServerUrlfalseに設定します。

getResponseCacheHeaders

このパイプラインは、応答キャッシュ ヘッダーを提供する役割を担います。次のプロセッサは、メディア要求のキャッシュ・ヘッダーに影響を与えます。

  • RequestTypeDetectionProcessor - リクエストタイプが指定されていない場合、リクエストタイプを検出します。

  • MediaRequestArgsInitializerProcessor - これにより、メディア要求のパイプライン引数によって提供されたgetResponseCacheHeadersが初期化されます。値は、Sitecore.configファイルのSitecore Media Response設定によって決まります。

  • PublishingProcessor - これにより、レスポンスの作成時にキャッシュヘッダーの公開に関する懸念事項が適用されます。このプロセッサは、アイテムの公開情報に基づいてキャッシュ可能性と有効期限を設定します。アイテムに公開日の制限がない場合、有効期限とmax-ageはどちらもSitecore.configファイルのSitecore Media Response設定によって決まります。アイテムに公開日の制限がある場合、有効期限とmax-ageは、アイテムの最大公開日を超えないように設定されます。

  • SecurityProcessor - これにより、レスポンスの作成時にキャッシュヘッダーの公開に関する懸念事項が適用されます。項目がパブリックに読み取り可能でない場合、プロセッサはcacheability noneset cacheexpiredとして設定します。

この記事を改善するための提案がある場合は、 お知らせください!