2010-02-09 81 views
1

我们在向Sitecore 6.1.0的富文本中插入链接时遇到了问题。当被插入到Sitecore的项目的链接时,其输出为:Sitecore未在页面呈现中解析富文本编辑器的URL

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

而不是实际的解决网址:

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

This article证实,这应该在渲染解决管道:

在Sitecore的6它插入一个特殊格式 链接包含GUID要在该项目提供的特殊 链接链接到,然后 项目的 被替换为实际的链接 该项目

管道在网页中添加的方法ShortenLinks。配置

<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。任何人有任何线索?

谢谢,亚当

回答

3

这将是,如果你使用的是SC的默认行为:FLD呈现的字段值。这是遗留在Sitecore 5中的遗留行为,它并未取代项目链接中的guid。

如果你想使用Sitecore的6的新功能,您必须使用SC:字段,而不是

+3

要在这个答案了一下,管道是在这两个地方从提及到一个完整的URL的ID格式为“扩大”扩大。如果使用XSL,sc:field扩展方法将调用renderField管道。如果您使用代码隐藏呈现链接,则可以使用FieldRenderer类。您还可以在布局/子布局(或从FieldRenderer控件派生的任何其他控件)中使用FieldRenderer控件。 这份文件给你的FieldRenderer控制的一些背景: http://sdn.sitecore.net/Reference/Sitecore%206/Presentation%20Component%20Reference.aspx – 2010-02-10 03:33:21

+0

谢谢,我会有 – 2010-02-11 09:04:39

2

如果你正在处理大量的代码修改来实现FieldRenderer,可能是值得考虑使用Sitecore.Links。 LinkManager.ExpandDynamicLinks(字符串文本,UrlOptions选项)。它解析链接和对Rich Text字段可能包含的媒体项的引用。

+0

的读如果您正在使用代码生成架构,那么您依赖原始字段值并希望替换链接,那么使用建议的功能仍然非常有用。 – VilladsR 2016-02-12 10:00:31

0

我也碰到类似的东西..我的客户正在使用一个sitecore占位符,也没有正确呈现链接。正如我用场结束了回答说渲染:

<sc:FieldRenderer runat="server" ID="frBody" FieldName="Body"/>