一段时间以来,我一直在尝试解决这个问题,但我想不出可以正常工作的东西。
您会看到,在我们的网站上有很多可点击的图像或 div,并提供了覆盖整个图像的组件链接。如果您激活 XPM 并尝试选择组件,它将触发其组件链接单击事件,并将您引导到正确的页面。
我一直在寻找一种仅在编辑时禁用此行为的快速解决方案,到目前为止,我已经提出了一些解决方法,坦率地说,这不是我想要的。
例如,您可以使用出色的 Razor 中介条件 (IsSiteEditEnabled),但是,如果您当前的出版物/页面/服务器已启用站点编辑,则此函数始终解析为 true。这意味着如果您插入特定于模板的代码,例如
@if(!IsSiteEditEnabled){
<a tridion:href="#"> other code, ending in closing of </a>...
}
站点编辑 (XPM) 未激活时不会输出链接,但可以激活。简而言之,登台服务器。
除非没有其他选择,否则我将需要一个 Live 发布服务器来使代码正常工作,但这会造成编辑者认为暂存服务器上的链接已损坏的问题。
我有一种感觉,我在这里缺少一些东西。我相信像你这样的人可能遇到过这个问题:)
这是块之一
<article class="block-2x2 banner">
<tcdl:ComponentField name="component_link"></tcdl:ComponentField>
@if(!IsSiteEditEnabled){
@:<a tridion:href="@Fields.component_link">
}
<div class="image-container">
<tcdl:ComponentField name="image"><img src="@Fields.image" alt="@Fields.image.altText"></tcdl:ComponentField>
</div>
<div class="hgroup">
<h4 class="primary-title">@RenderComponentField("header", 0)</h4>
<h5 class="secondary-title">@RenderComponentField("title", 0)</h5>
</div>
@if(!IsSiteEditEnabled){</a>}
</article>