【发布时间】:2012-04-13 06:05:29
【问题描述】:
我知道“MediaLinkPrefix”可以在 web.config 中更改。但是是否可以以编程方式更改“MediaLinkPrefix”?谢谢!
【问题讨论】:
标签: sitecore sitecore6 sitecore-media-library
我知道“MediaLinkPrefix”可以在 web.config 中更改。但是是否可以以编程方式更改“MediaLinkPrefix”?谢谢!
【问题讨论】:
标签: sitecore sitecore6 sitecore-media-library
回答您的具体问题。不可以。您不能以编程方式更改该设置的值。
如果您尝试使用Sitecore.Resources.Media.MediaManager.GetMediaUrl(mediaItem) 来获取MediaItem 的URL,那么这就是利用Sitecore.Resources.Media.MediaProvider,它从Sitecore.Resources.Media.MediaConfig 类中提取MediaLinkPrefix 的值。该属性没有“设置器”。此外,该属性的值实际上来自Sitecore.Configuration.Settings.Media.MediaLinkPrefix,它也没有设置器,而是直接从配置文件中提取的。
MediaManager 是一个静态类,我相信它不能用自定义实现换出。而且,与LinkManager 不同,MediaManager 被硬编码为使用Sitecore.Resources.Media.MediaProvider,因此您也不能编写自定义提供程序。
【讨论】:
您可以通过创建自己的 Sitecore.Links.LinkProvider 实现并在您的 web.config 中的 <linkManager> 部分下进行设置来做到这一点。
我不知道具体的实现,但是你可以从Sitecore.Links.LinkProvider 继承一个类,然后重写 GetItemUrl() 方法。
然后将您的类配置为用作 LinkManager。
【讨论】: