Sitecore Link Manager Url 选项站点解析未设置
Sitecore Link Manager Url Options Site Resolving is not Set
在多站点解决方案中,我使用以下解决方案允许根据站点在不同 link 管理器之间切换: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>
我已经切换了一些其他设置,只是为了确保它们会更改 link 经理的默认 url 选项,他们确实做到了。 siteResolving 属性不正确吗?
存在一个长期存在的问题,即 siteResolving
未应用于 link 管理器,无论其配置是否正确。
解决方案是在您的提供商中应用设置:
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/
听起来您有多个提供商,并且您正在尝试独立控制每个提供商的设置,对吗?在这种情况下,您可以尝试在 link 提供程序配置上提供 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);
}
在多站点解决方案中,我使用以下解决方案允许根据站点在不同 link 管理器之间切换: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>
我已经切换了一些其他设置,只是为了确保它们会更改 link 经理的默认 url 选项,他们确实做到了。 siteResolving 属性不正确吗?
存在一个长期存在的问题,即 siteResolving
未应用于 link 管理器,无论其配置是否正确。
解决方案是在您的提供商中应用设置:
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/
听起来您有多个提供商,并且您正在尝试独立控制每个提供商的设置,对吗?在这种情况下,您可以尝试在 link 提供程序配置上提供 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);
}