我正在使用sitecore 7单站点实例。 内容编辑器以此格式生成指向其他sitecore页面的链接
<a href="~/link.aspx?_id=C136420D804946BA83DEF823817F5944&_z=z">Agriculture</a>
发布后链接未转换为实际的服务器相关URL。 我已经完成了链接管理器设置&#34; alwaysIncludeServerUrl&#34;为真,但仍未获得正确的URL。
我已发布该页面但仍未显示实际网址。
更新:我不能在这里使用字段控制,因为有一些额外的逻辑可以控制需要呈现的文本。例如,如果有页面数据源被定义,那么使用它,否则使用&#34; ContentBlock&#34;当前项目的字段。
public string ContentBlockContent = "";
Sitecore.Data.Items.Item currentItem;
if (Parent is Sublayout && !string.IsNullOrEmpty(((Sublayout) Parent).DataSource))
{
currentItem = Sitecore.Context.Database.GetItem(((Sublayout) Parent).DataSource);
}
else
{
currentItem = Sitecore.Context.Item;
}
if (currentItem.Fields["ContentBlock"] != null)
{
ContentBlockContent = currentItem.Fields["ContentBlock"].ToString();
}
if (currentItem.Fields["PageContentSource"] != null)
{
var contentPageSource = currentItem.Fields["PageContentSource"];
var sourceItem = Sitecore.Context.Database.GetItem(contentPageSource.ToString());
if (sourceItem != null && sourceItem.Fields["ContentBlock"] != null)
{
ContentBlockContent = sourceItem.Fields["ContentBlock"].ToString();
}
}
这就是&#34; ContentBlockContnet&#34;属性在页面上呈现。
<%= ContentBlockContent %>
答案 0 :(得分:1)
&gt;&gt;未转换为与服务器相关的实际网址。
它在发布后不会被转换,它在呈现页面时被转换。
确保使用Sitecore渲染控件渲染内容字段,例如sc:text, sc:link or FieldRenderer
。通过这种方式,Sitecore将运行“renderField”
管道,负责链接转换。