我们在Sitecore 6.1.0中将链接插入富文本时遇到问题。当插入指向sitecore项目的链接时,它将输出为:
http://domain/~/link.aspx?_id=8A035DC067A64E2CBBE2662F6DB53BC5&_z=z
而不是实际解析的网址:
http://domain/path/to/page.aspx
This article确认应该在渲染管道中解决这个问题:
在Sitecore 6中它专门插入 包含Guid的格式化链接 然后,您想要链接到的项目 当项目呈现特殊时 链接被实际链接替换 到项目
管道在web.config中添加了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网址。有人有任何线索吗?
谢谢,亚当
答案 0 :(得分:3)
如果您使用sc:fld呈现字段值,这将是默认行为。这是Sitecore 5遗留下来的遗留行为,它没有替换项目链接中的guid。
如果您想使用Sitecore 6的新功能,则必须使用sc:field代替
答案 1 :(得分:3)
如果您正在处理大量代码更改以实现FieldRenderer,则可能值得考虑使用Sitecore.Links.LinkManager.ExpandDynamicLinks(字符串文本,UrlOptions选项)。它解析富文本字段可能包含的媒体项的链接和引用。
答案 2 :(得分:0)
我也碰到了类似的东西..我的客户端使用的是sitecore占位符,也没有正确呈现链接。正如答案所述,我使用字段渲染结束:
<sc:FieldRenderer runat="server" ID="frBody" FieldName="Body"/>