我有两个站点都由一个 Sitecore 解决方案提供服务,并且遇到以下代码强制将语言嵌入到两个站点之一的 URL 中的问题,因为下面来自基本 LinkProvider 的双星号封闭的代码正在返回true(“lang”cookie 键返回 null)。
private bool EmbedLanguage()
{
if (this._options.LanguageEmbedding == LanguageEmbedding.Always)
{
return true;
}
if (this._options.LanguageEmbedding == LanguageEmbedding.Never)
{
return false;
}
SiteContext site = Context.Site;
return ((site == null) || **((WebUtil.GetOriginalCookieValue(site.GetCookieKey("lang")) == null)** || this._options.EmbedLanguage(Context.Language)));
}
这只对两个站点之一执行此操作,而不对另一个站点执行此操作。Web.config 中 linkManager 中的 languageEmbedding 值为“asNeeded”。第一个(行为)站点是多语言的,而另一个(不行为)则不是。
目前尚不清楚为什么行为的一方得到了它的“lang”cookie 集,而另一个没有。他们都共享相当多的代码,除了布局、新的子布局等之外,有问题的站点与原始站点并没有太大的偏差。胆量几乎相同。
任何想法都会受到欢迎。也许我错过了一些很明显的东西?