gpt4 book ai didi

Sitecore 链接管理器 URL 选项站点解析未设置

转载 作者:行者123 更新时间:2023-12-01 09:23:17 24 4
gpt4 key购买 nike

在多站点解决方案中,我使用以下解决方案来允许在基于站点的不同链接管理器之间进行切换:http://thegrumpycoder.com/post/78684655662/sitecore-pipeline-enabled-linkprovider

这似乎按预期工作。我遇到的问题是以下配置的 siteResolving 未设置为 true:

<linkManager defaultProvider="overridesitecore">
<providers>
<clear />
...
<add name="someSiteSpecificLinkManager" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="false" alwaysIncludeServerUrl="true" encodeNames="true" languageEmbedding="always" languageLocation="filePath" lowercaseUrls="true" shortenUrls="true" useDisplayName="false" siteResolving="true" />
...
</providers>
</linkManager>

我已经切换了一些其他设置,只是为了确保它们会更改链接管理器的默认 url 选项并且他们确实做到了。 siteResolving 不是要使用的正确属性吗?

最佳答案

siteResolving 存在一个长期存在的问题,它没有被应用于链接管理器,无论它是否配置正确。

解决方案是在您的提供程序中应用设置:

public class SiteResolvingLinkProvider : LinkProvider
{
public override UrlOptions GetDefaultUrlOptions()
{
UrlOptions urlOptions = base.GetDefaultUrlOptions();
urlOptions.SiteResolving = Settings.Rendering.SiteResolving;
return urlOptions;
}
}

另请参阅:http://reasoncodeexample.com/2012/08/09/sitecore-cross-site-links/

听起来您有多个提供程序,并且您试图独立控制每个提供程序的设置,对吗?在这种情况下,您可以尝试在链接提供程序配置上提供 siteResolving 属性(如您所示),然后将该配置读入 LinkProvider 上的属性:

public bool SiteResolving { get; set; }

public override void Initialize(string name, NameValueCollection config)
{
base.Initialize(name, config);
SiteResolving = MainUtil.GetBool(config["siteResolving"], true);
}

关于Sitecore 链接管理器 URL 选项站点解析未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29774360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com