我知道“MediaLinkPrefix”可以在 web.config 中更改。但是是否可以以编程方式更改“MediaLinkPrefix”?谢谢!
2 回答
回答您的具体问题。不可以。您不能以编程方式更改该设置的值。
如果您尝试使用Sitecore.Resources.Media.MediaManager.GetMediaUrl(mediaItem)
获取 a 的 URL,MediaItem
那么它正在利用,它从类Sitecore.Resources.Media.MediaProvider
中提取 的值。该属性没有“设置器”。此外,该属性的值实际上来自,它也没有设置器,而是直接从配置文件中提取的。MediaLinkPrefix
Sitecore.Resources.Media.MediaConfig
Sitecore.Configuration.Settings.Media.MediaLinkPrefix
这MediaManager
是一个静态类,我相信它不能用自定义实现换掉。而且,与 不同的是LinkManager
,它MediaManager
是硬编码来使用的,Sitecore.Resources.Media.MediaProvider
因此您也不能编写自定义提供程序。
您可以通过创建您自己的实现Sitecore.Links.LinkProvider
并在您的 web.config<linkManager>
部分下进行设置来做到这一点。
我不知道确切的实现,但您可以继承一个类Sitecore.Links.LinkProvider
,然后覆盖 GetItemUrl() 方法。然后将您的类配置为用作 LinkManager。