如何配置Sitecore以便生成媒体项的绝对链接?

sko*_*ima 8 url performance sitecore pagespeed

<sc:Image>并且<sc:FieldRenderer>,在渲染MediaItem时,生成如下所示的html代码:

<img src="~/media/twitter.gif" alt="Twitter" width="100" height="22" />
Run Code Online (Sandbox Code Playgroud)

请注意src属性中使用的相对路径:这意味着当在多个页面上重复使用此类图像时,浏览器必须多次获取它(例如,在http://example.com/http://example.com/页面上)关于我们/).当我img在代码中生成标记时,我可以使用以下代码段强制使用绝对URL:

string url = Sitecore.StringUtil.EnsurePrefix('/',
    Sitecore.Resources.Media.MediaManager.GetMediaUrl(media));
Run Code Online (Sandbox Code Playgroud)

如何配置Sitecore以强制媒体网址中的前导斜杠?

使用Reflector我可以看到它MediaOptions.AbsolutePath控制我想要实现的行为,但我不知道如何为Sitecore内置控件设置它.设置Media.MediaLinkPrefixmediaPrefixesweb.config似乎没有任何改变.

Mar*_*ino 8

我参与了一个项目,我们将媒体资产存储在Akamai的CDN上,因此我们不得不改变媒体网址的解析方式.

我们LinkProvider通过改变来改编内置课程ExpandDynamicLinks().我们还修改Sitecore.Resources.Media.MediaProvider并更新了该GetMediaUrl()方法.

这些是处理由字段渲染器生成的图像的链接以及在富文本编辑器中创建的链接.

  • 这将是一个很好的机会,可以使用这些新类创建共享源模块,然后使用配置文件来修补默认设置. (3认同)