Sitecore语言嵌入多个站点
我想在一个Sitecore安装下运行两个站点。
第一个站点将只使用英语,因此我不会在文件路径中包含该语言。 languageEmbedding=never
第二个站点将使用多种语言,我需要在文件路径中包含该语言。 languageEmbedding=always
有没有办法可以定义多个链接管理器并配置站点以使用特定的链接管理器?
我发现最好的方法是创建一个支持这两种方案的自定义链接管理器。 然后有一个支持配置设置,定义语言是否嵌入。
public class LanguageLinkProvider : LinkProvider { public override string GetItemUrl(Item item, UrlOptions urlOptions) { urlOptions.SiteResolving = Configuration.Settings.Rendering.SiteResolving; string sites = ConfigurationManager.AppSettings["EmbedLanguageInUrl"]; var splitSites = new List(); if (!string.IsNullOrEmpty(sites)) splitSites = sites.Split(';').ToList(); if (splitSites.Contains(urlOptions.Site.Name)) urlOptions.LanguageEmbedding = LanguageEmbedding.Always; else urlOptions.LanguageEmbedding = LanguageEmbedding.Never; return base.GetItemUrl(item, urlOptions); } }
不,不是默认的。 但LinkManager是可重写的。 您可以通过为每个站点选择不同的配置并将其编码为重写的LinkManager来更改行为。
- 有没有办法拦截和修改asp.net中的html输出流,结合javascript?
- asp.net MSDeployEnableWebConfigEncryptRule无法加密web.config
- 在ASP.Net中搜索关键字高亮显示
- 如何添加简单的用户角色 – Asp.net MVC C#
- 从DataTable填充SelectList
- 创建对象时出现错误“存在显式转换(您是否错过了转换)”:
- 使用HTTP Web请求发送HTTP标头以进行NTLM身份validation
- Asp.Net MVC和ajax异步回调执行顺序
- Web聊天应用程序 – ASP.NET/Jabber/Ajax/WCF/Comet/ReverseAjax – 面临的问题 – 寻求见解