2011-05-25 15 views

Respuesta

0

Acabo de contestar a similar question en Stack Overflow recientemente. Creo que la respuesta se aplica a la tuya también.

Resumen breve: no hay ninguna configuración para hacer esto, debe sobrescribir algunos de los métodos integrados para hacer esto. Vea el enlace de arriba para los detalles exactos.

3

he descubierto que el siguiente trabajo para la producción de direcciones URL completas para los elementos multimedia:

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

las direcciones URL producidos serán relativa a item por lo que puede suministrar una referencia a su artículo principal en vez de Sitecore.Context.Item

8

Sólo para subir esto, en Sitecore 7 la opción AlwaysIncludeServerUrl también se incluye en MediaUrlOptions (no sé desde qué versión de Sitecore)

Te gusta esto:

MediaUrlOptions muo = new MediaUrlOptions(); 
muo.AlwaysIncludeServerUrl = true; 
String url = MediaManager.GetMediaUrl((MediaItem)item, muo); 
0

Sí, puedes hacer eso!

La forma correcta de configurar este parámetro es especificando dentro del archivo de configuración en linkManager sección, donde tiene esta y el resto de configuraciones con respecto a cómo se resolverán sus URL. Aquí está toda la sección, que está interesado en alwaysIncludeServerUrl parámetro:

<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> 
+3

no creo que esto se aplica a MediaManager.GetMediaUrl –

Cuestiones relacionadas