1

我们在 Sitecore 6.1.0 中将链接插入富文本时遇到问题。当插入指向站点核心项目的链接时,它会输出为:

http://domain/~/link.aspx?_id=8A035DC067A64E2CBBE2662F6DB53BC5&_z=z

而不是实际解析的网址:

http://domain/path/to/page.aspx

本文确认这应该在渲染管道中解决:

在 Sitecore 6 中,它会插入一个特殊格式的链接,其中包含您要链接到的项目的 Guid,然后在呈现该项目时,该特殊链接将替换为该项目的实际链接

管道ShortenLinks在 web.config 中添加了方法

<convertToRuntimeHtml>
    <processor type="Sitecore.Pipelines.ConvertToRuntimeHtml.PrepareHtml, Sitecore.Kernel"/>
    <processor type="Sitecore.Pipelines.ConvertToRuntimeHtml.ShortenLinks, Sitecore.Kernel"/>
    <processor type="Sitecore.Pipelines.ConvertToRuntimeHtml.SetImageSizes, Sitecore.Kernel"/>
    <processor type="Sitecore.Pipelines.ConvertToRuntimeHtml.ConvertWebControls, Sitecore.Kernel"/>
    <processor type="Sitecore.Pipelines.ConvertToRuntimeHtml.FixBullets, Sitecore.Kernel"/>
    <processor type="Sitecore.Pipelines.ConvertToRuntimeHtml.FinalizeHtml, Sitecore.Kernel"/>
</convertToRuntimeHtml>

所以我真的不明白为什么链接仍然以 ID 格式呈现,而不是完整的 SEO-tastic url。有人有任何线索吗?

谢谢,亚当

4

3 回答 3

3

如果您使用 sc:fld 呈现字段值,这将是默认行为。这是 Sitecore 5 遗留的遗留行为,它没有替换项目链接中的 guid。

如果你想使用 Sitecore 6 的新功能,你必须使用 sc:field 代替

于 2010-02-09T15:26:32.993 回答
3

如果您正在处理大量代码更改以实现 FieldRenderer,则可能值得考虑使用 Sitecore.Links.LinkManager.ExpandDynamicLinks(string text, UrlOptions options)。它解析富文本字段可能包含的媒体项目的链接和引用。

于 2010-06-06T03:06:33.843 回答
0

我也遇到了类似的问题。我的客户使用的是 sitecore 占位符,它也不能正确呈现链接。正如我使用字段渲染结束的答案所述:

<sc:FieldRenderer runat="server" ID="frBody" FieldName="Body"/>
于 2012-04-03T20:16:22.037 回答