Получить медиа-адрес, включая серверную часть - PullRequest
10 голосов
/ 25 мая 2011

Можно ли получить URL с MediaManager.GetMediaUrl, который всегда включает в себя серверную часть?

Ответы [ 4 ]

8 голосов
/ 08 апреля 2014

Просто чтобы поднять это, в Sitecore 7 опция AlwaysIncludeServerUrl также включена в MediaUrlOptions (не знаю, с какой версии Sitecore)

Как это:

MediaUrlOptions muo = new MediaUrlOptions();
muo.AlwaysIncludeServerUrl = true;
String url = MediaManager.GetMediaUrl((MediaItem)item, muo);
3 голосов
/ 06 октября 2011

Я обнаружил, что для создания полностью определенных URL для элементов мультимедиа будет работать следующее:

public static string GetMediaUrlWithServer(MediaItem mediaItem, Item item = null)
{
    item = item ?? Sitecore.Context.Item;
    var options = new UrlOptions {AlwaysIncludeServerUrl = true, AddAspxExtension = false};
    var itemUrl = LinkManager.GetItemUrl(item, options);
    var mediaOptions = new MediaUrlOptions {AbsolutePath = true};
    var mediaUrl = MediaManager.GetMediaUrl(mediaItem, mediaOptions);
    return itemUrl + mediaUrl;
}

Полученные URL будут относиться к item, поэтому вы можете указать ссылку на свойДомашний предмет вместо Sitecore.Context.Item

0 голосов
/ 07 августа 2015

Да, вы можете сделать это!

Правильный способ установки этого параметра - указать в файле конфигурации в разделе linkManager , где у вас есть это и остальные настройки, касающиеся того,URL будут разрешены.Вот весь раздел, который вас интересует, параметр alwaysIncludeServerUrl :

<linkManager defaultProvider="sitecore">
  <providers>
    <clear />
    <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel"
         alwaysIncludeServerUrl="true"             
         addAspxExtension="true"
         encodeNames="true"
         languageEmbedding="asNeeded"
         languageLocation="filePath"
         shortenUrls="true"
         useDisplayName="false" />
  </providers>
</linkManager>
0 голосов
/ 25 мая 2011

Я только что ответил на аналогичный вопрос о переполнении стека.Я полагаю, что ответ относится и к вашему.

Краткое резюме: для этого нет конфигурации, вам нужно переопределить некоторые встроенные методы для этого.См. Ссылку выше для точных деталей.

...