1. その他の開発課題

ビルドアイテムおよびメディアURLを

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

このページの翻訳は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にはなりません。

以下の例は、構成をパッチで修正する方法を示しています:

false asNeeded filePath false true false false true true

以下の表は構成ノードとその値を説明します。

構成ノード

価値

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 });

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