我有兩個站點都由一個Sitecore解決方案提供服務,並且遇到以下代碼在兩個站點之一的URL中強制嵌入語言的問題,因爲以下代碼中的雙星號封閉的一段代碼來自基礎LinkProvider返回true(「lang」cookie鍵返回null)。爲什麼一個解決方案中的一個Sitecore站點有一個「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」。第一個(行爲)網站是多語言的,而另一個(不行爲)則不是。
目前尚不清楚爲什麼行爲人獲取其「朗」cookie集,而另一個不是。他們都分享了相當多的代碼,並且有問題的網站與原始版本沒有任何差異,除了佈局,新的子佈局等外,內容幾乎相同。
任何想法都會受到歡迎。也許這是真的很明顯,我失蹤了?
澄清,這是「郎」的cookie值將返回null爲頑皮的網站,而不是關鍵(對不起,在當天晚些時候)。 – wildwend
我會避免使用'asNeeded'。說實話,我不知道爲什麼這個設置存在。如果將此切換爲「始終」,它會有什麼區別嗎? – geedubb