ビルドアイテムおよびメディアURLを
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecoreアイテムに使うURLをプログラム的に構築でき、アイテムとメディアの両方のURLを作成できます。APIがURLを構築する方法を、それぞれアイテムのクラスItemUrlBuilderOptionsとメディアのMediaUrlBuilderOptionsクラスを使ってコントロールできます。言語埋め込み、絶対パスや相対パス、表示名やアイテム名などを制御できます。
アイテムURLを作成する
Sitecore.Abstractions.BaseLinkManagerクラスは、アイテムURLをレンダリングするための公開APIを提供します:
public abstract string GetItemUrl(Item item, ItemUrlBuilderOptions options);
ここで
- Item はURLを生成するアイテムです。
- ItemUrlBuilderOptions はURLを生成する仕様です。
ItemUrlBuilderOptions仕様を使ってSitecoreがURLをどのように構築するかを制御します。このクラスは、アイテムやメディアアイテムのURL生成を制御するために使う共通プロパティを含むSitecore.Links.UrlBuilders.UrlBuilderOptionsクラスSitecore拡張します。
以下の表はこれら二つのクラスの性質を説明しています。
UrlBuilderOptionsクラス
財産
概要
bool? AlwaysIncludeServerUrl
サーバーURLが常に含まれているかどうかを指定します。
Language Language
言語を指定します。デフォルトは Context.Languageです。
LanguageEmbedding? LanguageEmbedding
SitecoreがURLに言語を埋め込むかどうか、またどのように埋め込むかを指定します。
> [!注]
ここで説明>言語埋め込みセットは 、サイト設定で選択した言語埋め込み構成によって上書きされます。
LanguageLocation? LanguageLocation
Sitecoreが言語をURLパスに配置するかクエリ文字列に配置するかを指定します。
bool? LowercaseUrls
Sitecoreが小文字のURLを表示するかどうかを指定します。
bool? EncodeNames
SitecoreがURL内に名前をエンコードするかどうかを指定します。
bool? UseDisplayName
SitecoreがURLを生成する際に表示名を使うかどうかを指定します。
ItemUrlBuilderOptionsクラス
財産
概要
bool? AddAspxExtension
URLに .apsx 拡張子を追加するかどうかSitecore指定します。
bool? SiteResolving
Sitecoreがサイト解析を可能にするかどうかを指定します。
SiteContext Site
場所を指定する。
bool? ShortenUrls
SitecoreがURLを短縮するかどうかを指定します。
BaseLinkManagerクラスのデフォルトSitecore実装ではSitecore.Links.LinkProviderクラスが使われています。LinkProviderクラスはItemUrlBuilderクラスを使ってアイテムURLを生成します。<links/itemUrlBuilder>設定ノードをパッチで修正することでカスタムURLビルダーを注入できます。
ItemUrlBuilderクラスは単一のコンストラクタを持ち、型DefaultItemUrlBuilderOptionsのパラメータを1つ取ります。これはSitecoreがItemUrlBuilderOptions仕様のnullまたは非提供の値を使ったフォールバックとして使われる仕様です。
DefaultItemUrlBuilderOptionsパラメータはItemUrlBuilderOptionsオプションと同じ性質を持ちますが、これらの性質はnullにはなりません。
以下の例は、構成をパッチで修正する方法を示しています:
以下の表は構成ノードとその値を説明します。
構成ノード
価値
alwaysIncludeServerUrl
生成されたURLに常に現在のサーバーURLを追加するSitecoreを指定します。デフォルトは falseです。
languageEmbedding
生成するURLに言語名を埋め込むSitecoreを指定する。選択肢は以下の通り: asNeeded | always | never。デフォルトは asNeeded。
languageLocation
言語をURLパスに置くSitecoreクエリ文字列に置くかを指定します。オプションは filePath | queryStringです。デフォルトは filePathです。
lowercaseUrls
生成するURL Sitecore小文字かどうかを指定します。デフォルトは falseです。
encodeNames
生成するURLに名前を符号化するかどうかSitecore指定します。デフォルトは trueです。
useDisplayName
アイテムの表示名を使うかどうかSitecore指定します。デフォルトは falseです。
addAspxExtension
生成するURLに .aspx 拡張子を追加するかどうかSitecore指定します。デフォルトは falseです。
siteResolving
アイテムURLをレンダリングする際にサイト情報を解決するかどうかSitecore指定します。デフォルトは trueです。
shortenUrls
生成するURLを短縮するかどうかSitecore指定します。デフォルトは trueです。
例
もしこの項目: /sitecore/content/home/sample itemがあり、その項目に英語版とデンマーク語版がある場合、以下のコードは英語版のhttp://{HOST}/en/Sample Item 、デンマーク語版のhttp://{HOST}/da/Sample Itemに似たURLを生成します。
linkManager.GetItemUrl(sampleItem, new ItemUrlBuilderOptions { AlwaysIncludeServerUrl = true, LanguageEmbedding = LanguageEmbedding.Always, LanguageLocation = LanguageLocation.FilePath });
メディアアイテムURLを作成する
Sitecore.Abstractions.BaseMediaManagerクラスはメディアURLをレンダリングするための公開の公APIを提供します:
public virtual string GetMediaUrl(MediaItem item, MediaUrlBuilderOptions options);
ここで
- MediaItem はURLを生成するメディアアイテムです
- MediaUrlBuilderOptions はメディアURLを生成する仕様です。
MediaUrlBuilderOptions仕様を使ってSitecoreがURLを構築する方法を制御します。このクラスは、SitecoreがアイテムやメディアアイテムのURLを生成する方法を制御するために使う共通プロパティを含むSitecore.Links.UrlBuilders.UrlBuilderOptionsクラスを拡張します。
以下の表はこれら二つのクラスの性質を説明しています。
UrlBuilderOptionsクラス
財産
概要
bool? AlwaysIncludeServerUrl
サーバーURLが常に含まれているかどうかを指定します。
Language Language
言語を指定します。デフォルトは Context.Languageです。
LanguageEmbedding? LanguageEmbedding
SitecoreがURLに言語を埋め込むかどうか、またどのように埋め込むかを指定します。
LanguageLocation? LanguageLocation
Sitecoreが言語をURLパスに配置するかクエリ文字列に配置するかを指定します。
bool? LowercaseUrls
Sitecoreが小文字のURLを表示するかどうかを指定します。
bool? EncodeNames
SitecoreがURL内に名前をエンコードするかどうかを指定します。
bool? UseDisplayName
SitecoreがURLを生成する際に表示名を使うかどうかを指定します。
MediaUrlBuilderOptionsクラス
財産
概要
bool? AbsolutePath
Sitecoreがメディアリンクを絶対パスでレンダリングするかどうかを指定します。
bool? AllowStretch
Sitecoreがレンダリング中にメディアのストレッチを許可しているかどうかを指定します。
bool? AlwaysAppendRevision
Sitecoreが常にメディア項目のリビジョンを付け加えるかどうかを指定します。
bool? DisableBrowserCache
Sitecoreがメディアアイテムをキャッシュできないヘッダー値を設定するかどうかを指定します。
bool? DisableMediaCache
Sitecoreがメディアアイテムをメディアキャッシュにキャッシュできないプロパティを設定しているかどうかを指定します。
bool? IgnoreAspectRatio
メディアのサイズ変更時にSitecoreがアスペクト比を無視するかどうかを指定しています。
bool? IncludeExtension
SitecoreがURLに拡張を含めるかどうかを指定します。生成します。
bool? Thumbnail
メディアアイテムがサムネイルかどうかを指定します。
bool? UseDefaultIcon
Sitecoreがメディアアイテムのデフォルトアイコンを使用しているかどうかを指定します。
bool? UseItemPath
SitecoreがメディアURLを構築する際にアイテムパスを使用するかどうかを指定します。
int? Height
メディアアイテムの高さを指定します。
int? MaxHeight
メディアアイテムの最大高さを指定します。
int? Width
メディアアイテムの幅を指定します。
int? MaxWidth
メディアアイテムの最大幅を指定します。
float? Scale
メディア項目の規模を指定します。
string DefaultIcon
デフォルトのアイコンを指定します。
string RequestExtension
リクエストメディア拡張を指定します。
string VirtualFolder
メディアアイテムの仮想フォルダを指定します。
string ItemRevision
メディア項目の項目改訂を指定します。
Color? BackgroundColor
背景色を指定します。
例
もしメディアアイテム( /sitecore/media library/Images/myImage)がある場合、以下のコードがhttp://{HOST}/-/media/Images/myImage.ashx?bc=White&h=300&w=200に似たURLを生成します:
mediaManager.GetMediaUrl(mediaItem, new MediaUrlBuilderOptions { AlwaysIncludeServerUrl = true, BackgroundColor = Color.White, Height = 300, Width = 200 });