Sitecore 占位符不再可在体验编辑器中编辑
Sitecore Placeholder no longer editable in Experience Editor
我们刚刚开始遇到一个非常奇怪的问题。我们有一个模板,它使用一个包含三列子布局的基本布局。子布局中的每一列都有一个占位符。这是代码:
<div class="section section-bottom-padding row row-narrow">
<div class="col md-3 left-sidebar">
@Html.Sitecore().DynamicPlaceholder("three-six-three_content-a")
</div>
<div class="col md-6 main-content">
@Html.Sitecore().DynamicPlaceholder("three-six-three_content-b")
</div>
<div class="col md-3 callout-sidebar">
@Html.Sitecore().DynamicPlaceholder("three-six-three_content-c")
</div>
</div>
第三列的占位符设置也设置为标准值,关键字为three-six-three_content-c。
有数百个页面包含已添加到 three-six-three_content-c 占位符的组件,并且一直运行良好。昨天我被告知,我们的一位内容编辑创建了该模板的新实例,但无法将组件添加到 XE 中的 three-six-three_content-c 占位符。我确认不存在表示拖放区的正常方格背景。其他像这样已经有组件的页面工作得很好,允许您根据需要 add/remove 组件...直到您从占位符中删除所有组件。之后,您将失去添加更多的能力。
为了验证,我将单词“-test”附加到视图中的占位符,使其成为 three-six-three_content-c-test 并为此更新了占位符设置相应地匹配特定的内容项。这样做之后,正确的体验又回来了,我就可以添加组件了。当我恢复到原来的名称时,add/remove 组件的功能就消失了。我还使用 @Html.Sitecore().Placeholder("three-six-three_content-c") 而不是 DynamicPlaceholder 进行了测试,只是为了排除 DynamicPlaceholder 模块没有引起问题。
我还验证了它被标记为可编辑并且 CSS 没有隐藏占位符。
似乎名称 three-six-three_content-c 已损坏或导致问题,但我不知道为什么会发生这种情况。
我们的设计师还在该列周围添加了一个红色边框,它就在那里,但它只有 1 个像素高,因为里面什么都没有,而且点击 "add component" 不会给你灰色 "add here" 按钮。
有人遇到过这个吗?
宾果!答案已经找到。我们的设计师最近放弃了对模板标准值的渲染,并将其放在 three-six-three_content-c 上。她有一个 css class 错误地隐藏了带有 display:none 的渲染(试图使其响应)。 Sitecore 仍然能够将渲染放置在占位符上,但由于它被设置为 display:none,占位符 canvas 的高度为 0px(因为没有内容可以用任何东西填充它)。在这种情况下,您不会看到 "add component" 按钮或看到方格 canvas 以单击并添加更多项目。
我们刚刚开始遇到一个非常奇怪的问题。我们有一个模板,它使用一个包含三列子布局的基本布局。子布局中的每一列都有一个占位符。这是代码:
<div class="section section-bottom-padding row row-narrow">
<div class="col md-3 left-sidebar">
@Html.Sitecore().DynamicPlaceholder("three-six-three_content-a")
</div>
<div class="col md-6 main-content">
@Html.Sitecore().DynamicPlaceholder("three-six-three_content-b")
</div>
<div class="col md-3 callout-sidebar">
@Html.Sitecore().DynamicPlaceholder("three-six-three_content-c")
</div>
</div>
第三列的占位符设置也设置为标准值,关键字为three-six-three_content-c。
有数百个页面包含已添加到 three-six-three_content-c 占位符的组件,并且一直运行良好。昨天我被告知,我们的一位内容编辑创建了该模板的新实例,但无法将组件添加到 XE 中的 three-six-three_content-c 占位符。我确认不存在表示拖放区的正常方格背景。其他像这样已经有组件的页面工作得很好,允许您根据需要 add/remove 组件...直到您从占位符中删除所有组件。之后,您将失去添加更多的能力。
为了验证,我将单词“-test”附加到视图中的占位符,使其成为 three-six-three_content-c-test 并为此更新了占位符设置相应地匹配特定的内容项。这样做之后,正确的体验又回来了,我就可以添加组件了。当我恢复到原来的名称时,add/remove 组件的功能就消失了。我还使用 @Html.Sitecore().Placeholder("three-six-three_content-c") 而不是 DynamicPlaceholder 进行了测试,只是为了排除 DynamicPlaceholder 模块没有引起问题。
我还验证了它被标记为可编辑并且 CSS 没有隐藏占位符。
似乎名称 three-six-three_content-c 已损坏或导致问题,但我不知道为什么会发生这种情况。
我们的设计师还在该列周围添加了一个红色边框,它就在那里,但它只有 1 个像素高,因为里面什么都没有,而且点击 "add component" 不会给你灰色 "add here" 按钮。
有人遇到过这个吗?
宾果!答案已经找到。我们的设计师最近放弃了对模板标准值的渲染,并将其放在 three-six-three_content-c 上。她有一个 css class 错误地隐藏了带有 display:none 的渲染(试图使其响应)。 Sitecore 仍然能够将渲染放置在占位符上,但由于它被设置为 display:none,占位符 canvas 的高度为 0px(因为没有内容可以用任何东西填充它)。在这种情况下,您不会看到 "add component" 按钮或看到方格 canvas 以单击并添加更多项目。