1. その他の開発タスク

ビルド アイテムとメディアのURL

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

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

Sitecoreがアイテムに使用するURLをプログラムで作成でき、この方法でアイテムとメディアの両方のURLを作成できます。APIがURLを作成する方法を制御するには、itemアイテムとメディア アイテムのsクラスをそれぞれthe the store ItemUrlBuilderOptionsクラスとMediaUrlBuilderOptionsクラスを使用します。言語の埋め込み、絶対パスまたは相対パス、表示名や項目名の使用などを制御できます。

アイテムのURLを作成する

Sitecore.Abstractions.BaseLinkManagerクラスは、アイテムのURLをレンダリングするためのパブリックAPIを提供します。

public abstract string GetItemUrl(Item item, ItemUrlBuilderOptions options);

どこ

  • Itemは、URLを生成するアイテムです。

  • ItemUrlBuilderOptionsは、URLを生成するための仕様です。

ItemUrlBuilderOptions仕様を使用して、SitecoreがURLを作成する方法を制御します。このクラスは、Sitecoreがアイテムとメディア アイテムの両方のURLを生成する方法を制御するために使用する共通プロパティを含むSitecore.Links.UrlBuilders.UrlBuilderOptionsクラスを拡張します。

次の表では、これら2つのクラスのプロパティについて説明します。

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

SitecoreがURLに .apsx拡張子を追加するかどうかを指定します。

bool? SiteResolving

Sitecoreがサイトの解決を有効にするかどうかを指定します。

SiteContext Site

サイトを指定します。

bool? ShortenUrls

SitecoreがURLを短縮するかどうかを指定します。

BaseLinkManagerクラスのデフォルトのSitecore実装では、Sitecore.Links.LinkProviderクラスが使用されます。LinkProviderクラスは、ItemUrlBuilderクラスを使用してアイテムのURLを生成します。カスタムURLビルダーを挿入するには、<links/itemUrlBuilder> 構成ノードにパッチを適用します。

ItemUrlBuilderクラスには、ItemUrlBuilderOptions仕様のnull値または指定されていない値のフォールバックとしてSitecoreが使用する仕様 であるDefaultItemUrlBuilderOptions型のパラメーターを1つ受け取る1つのコンストラクターがあります。

DefaultItemUrlBuilderOptionsパラメーターには、ItemUrlBuilderOptionsオプションと同じプロパティのセットがありますが、これらのプロパティをnullにすることはできません。

次の例は、設定にパッチを適用する方法を示しています。

<!-- URL BUILDERS -->
    <links>
        <urlBuilder>
            <alwaysIncludeServerUrl>false</alwaysIncludeServerUrl>
            <languageEmbedding>asNeeded</languageEmbedding>
            <languageLocation>filePath</languageLocation>
            <lowercaseUrls>false</lowercaseUrls>
            <encodeNames>true</encodeNames>
            <useDisplayName>false</useDisplayName>
        </urlBuilder>
        <itemUrlBuilder type="Sitecore.Links.UrlBuilders.ItemUrlBuilder, Sitecore.Kernel">
            <param desc="defaultOptions" type="Sitecore.Links.UrlBuilders.DefaultItemUrlBuilderOptions, Sitecore.Kernel">
                <alwaysIncludeServerUrl ref="links/urlBuilder/alwaysIncludeServerUrl" />
                <languageEmbedding ref="links/urlBuilder/languageEmbedding" />
                <languageLocation ref="links/urlBuilder/languageLocation" />
                <lowercaseUrls ref="links/urlBuilder/lowercaseUrls" />
                <encodeNames ref="links/urlBuilder/encodeNames" />
                <useDisplayName ref="links/urlBuilder/useDisplayName" />
                <addAspxExtension>false</addAspxExtension>
                <siteResolving>true</siteResolving>
                <shortenUrls>true</shortenUrls>
            </param>
        </itemUrlBuilder>
    </links>

次の表では、構成ノードとこれらのノードの値について説明します。

構成ノード

価値

alwaysIncludeServerUrl

Sitecoreが生成されたURLに現在のサーバー URLを常に追加するかどうかを指定します。デフォルトはfalseです。

languageEmbedding

Sitecoreが生成するURLに言語名を埋め込むかどうかを指定します。オプションは、asNeeded | always | neverです。デフォルトはasNeededです。

languageLocation

Sitecoreが言語をURLパスに配置するか、クエリ文字列に配置するかを指定します。オプションはfilePath | queryStringです。デフォルトはfilePathです。

lowercaseUrls

Sitecoreが生成するURLを小文字にするかどうかを指定します。デフォルトはfalseです。

encodeNames

Sitecoreが生成するURLに名前をエンコードするかどうかを指定します。デフォルトはtrueです。

useDisplayName

Sitecoreがアイテムの表示名を使用するかどうかを指定します。デフォルトはfalseです。

addAspxExtension

Sitecoreが生成するURLに .aspx拡張機能を追加するかどうかを指定します。デフォルトはfalseです。

siteResolving

SitecoreがアイテムのURLをレンダリングするときにサイト情報を解決するかどうかを指定します。デフォルトはtrueです。

shortenUrls

Sitecoreが生成するURLを短縮するかどうかを指定します。デフォルトは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クラスを拡張します。

次の表では、これら2つのクラスのプロパティについて説明します。

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がある場合、次のコードは次のようなURLを生成しますhttp://{HOST}/-/media/Images/myImage.ashx?bc=White&amp;h=300&amp;w=200

mediaManager.GetMediaUrl(mediaItem, new MediaUrlBuilderOptions
                {
                    AlwaysIncludeServerUrl = true,
                    BackgroundColor = Color.White,
                    Height = 300,
                    Width = 200
                });
この記事を改善するための提案がある場合は、 お知らせください!