1

我知道“MediaLinkPrefix”可以在 web.config 中更改。但是是否可以以编程方式更改“MediaLinkPrefix”?谢谢!

4

2 回答 2

2

回答您的具体问题。不可以。您不能以编程方式更改该设置的值。

如果您尝试使用Sitecore.Resources.Media.MediaManager.GetMediaUrl(mediaItem)获取 a 的 URL,MediaItem那么它正在利用,它从类Sitecore.Resources.Media.MediaProvider中提取 的值。该属性没有“设置器”。此外,该属性的值实际上来自,它也没有设置器,而是直接从配置文件中提取的。MediaLinkPrefixSitecore.Resources.Media.MediaConfigSitecore.Configuration.Settings.Media.MediaLinkPrefix

MediaManager是一个静态类,我相信它不能用自定义实现换掉。而且,与 不同的是LinkManager,它MediaManager是硬编码来使用的,Sitecore.Resources.Media.MediaProvider因此您也不能编写自定义提供程序。

于 2012-04-13T13:29:12.077 回答
1

您可以通过创建您自己的实现Sitecore.Links.LinkProvider并在您的 web.config<linkManager>部分下进行设置来做到这一点。

我不知道确切的实现,但您可以继承一个类Sitecore.Links.LinkProvider,然后覆盖 GetItemUrl() 方法。然后将您的类配置为用作 LinkManager。

于 2012-04-13T07:59:17.170 回答