私は 2 つのサイトを両方とも 1 つの Sitecore ソリューションで提供していますが、次のコードが 2 つのサイトのいずれかの URL に言語の埋め込みを強制しているという問題があります。 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)));
}
これは、2 つのサイトの一方に対してのみ行われ、他方に対しては行われません。Web.config の linkManager の languageEmbedding 値は「asNeeded」です。最初の (動作している) サイトは多言語であり、もう 1 つの (動作していない) サイトはそうではありません。
動作している 1 つが「lang」Cookie セットを取得し、もう 1 つがそうでない理由は明らかではありません。どちらもかなりの量のコードを共有しており、問題のあるサイトは、レイアウト、新しいサブレイアウトなどを除いて、元のサイトから大きく逸脱していません。中身はほとんど同じです。
どんなアイデアでも大歓迎です。おそらく、私が見逃しているのは本当に明らかなことでしょうか?