2

这里有没有人从 Sitecore 生成的 URL 中成功删除了 sitecore/content。

我正在使用 Sitecore 链接管理器生成 URL。我有一个多站点设置,并且已将 Siteresolving 选项启用为 true。但是,似乎没有办法使用链接管理器使其工作。

GetFriendlyUrl 方法似乎生成没有 sitecore/content 的 URL,但不幸的是它已被弃用,所以这里不是一个选项。

我见过有人建议覆盖 LinkProvider 并编写自定义逻辑以从 URL 中删除站点核心/内容。这确实有效,但不是一个好的解决方案。

我很想在这里向其他 Sitecore 专家学习。

仅供参考:我使用的是 Sitecore 6.4。

干杯!

4

3 回答 3

4

请确保您的网站在此博客文章中正确配置:您的 URL 中有“/sitecore/content”吗?是时候修复它了。

于 2012-08-01T17:59:31.660 回答
3

我找到了解决方案。根据 Mark 的参考,我的多站点配置是正确的。我为解决这个问题所做的是指定生成链接时要使用的站点上下文。

Sitecore.Links.UrlOptions URLOptions = new Sitecore.Links.UrlOptions();
URLOptions.Site = Sitecore.Configuration.Factory.GetSite(Your_Site_Name);
return Sitecore.Links.LinkManager.GetItemUrl(ThisItem, URLOptions);
于 2012-10-08T04:51:43.670 回答
0

仅供参考,我发现以下代码段可用于为我的场景识别正确的上下文站点,其中一个站点上下文的内容是从另一个站点上下文引用的。我计划更新规范链接以通知谷歌正确的网址。

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));
}
于 2015-07-14T01:30:23.173 回答