此处是否有人成功从Sitecore生成的网址中删除了网站核心/内容。
我正在使用Sitecore链接管理器生成网址。我有一个多站点设置并已启用Siteresolving选项为true。但是,似乎没有办法使用链接管理器使其工作。
GetFriendlyUrl方法似乎生成没有sitecore / content的URL,但遗憾的是它已被弃用,因此它不是一个选项。
我见过有人建议覆盖LinkProvider并编写自定义逻辑以从URL中删除sitecore / content。这确实有效但不是一个好的解决方案。
我很想在这里向其他Sitecore专家学习。
仅供参考:我正在使用Sitecore 6.4。
干杯!
答案 0 :(得分:4)
请从此博文中确保您的网站配置正确:Have '/sitecore/content' in your URLs? Time to fix it.
答案 1 :(得分:3)
我找到了解决方案。根据马克的参考资料,我的多站点配置是正确的。我为解决这个问题所做的是指定生成链接时要使用的站点上下文。
Sitecore.Links.UrlOptions URLOptions = new Sitecore.Links.UrlOptions();
URLOptions.Site = Sitecore.Configuration.Factory.GetSite(Your_Site_Name);
return Sitecore.Links.LinkManager.GetItemUrl(ThisItem, URLOptions);
答案 2 :(得分:0)
fyi,我发现以下代码段对于为我的场景识别正确的上下文站点非常有用,其中一个站点上下文的内容是从另一个站点上下文引用的。我打算更新规范链接以通知谷歌正确的网址。
public static Sitecore.Web.SiteInfo GetSite(this Sitecore.Data.Items.Item itemYouNeedToCheck)
{
return Sitecore.Configuration.Factory.GetSiteInfoList()
.OrderByDescending(x=> x.RootPath.Length)
.FirstOrDefault(x => x.Database!="core" && itemYouNeedToCheck.Paths.FullPath.StartsWith(x.RootPath));
}