Kentico “可编辑的 Web 部件”出现在“编辑区域和 Web 部件”下的页面中
Posted
技术标签:
【中文标题】Kentico “可编辑的 Web 部件”出现在“编辑区域和 Web 部件”下的页面中【英文标题】:Kentico "Editable Web Parts" appearing in page under "Edit Regions & Web Parts" 【发布时间】:2018-10-07 15:20:20 【问题描述】:我有一堆页面,我或其他内容编辑者通过页面应用程序中的设计选项卡添加了 Web 部件。当我查看页面时,Web 部件似乎可以正常工作。
我经常收到来自内容编辑器的通知,他们在页面上看到过时的内容。果然,当我登录 CMS 并转到页面应用程序并查看页面预览选项卡时,我看到了旧内容。然后我转到“设计”选项卡并编辑他们正在查看的 Web 部件,我确实看到他们的新内容出现在 Web 部件表单控件中。很奇怪。我没有在页面或这些 Web 部件上设置任何缓存。
浏览了一下之后,我在 Pages 应用程序的“常规”选项卡下找到了“编辑区域和 Web 部件”。它位于“高级”标签下方。我打开它,我看到一个标有“可编辑内容”的窗口,其中显示了两个列表“可编辑的 Web 部件”和“可编辑的区域”。每次内容编辑器向我展示这种陈旧内容的示例时,都会在“可编辑的 Web 部件”下列出一个项目,当我打开该项目时,它具有编辑器抱怨的“陈旧”内容。它似乎覆盖了“设计”选项卡中实际分配给 Web 部件的任何内容。我从列表中删除了该项目,页面突然又显示了正确的内容。
如何在 Kentico 中控制这个“可编辑的 Web 部件”列表?。哪些操作会在此列表中创建项目?
我的站点中有数百个页面,所有页面都包含许多 Web 部件。但是只有少数(不到十个)页面报告了这种行为。
据我所知,我所有的内容编辑器都遵循相同的过程来使用设计视图将这些 Web 部件添加到页面中。没有人做任何不同的事情,或者通过该高级区域在“可编辑 Web 部件”列表中手动创建项目。
我们猜测,当多个编辑者编辑同一内容时,可能会发生这种情况,因为我们往往会在系统中大量编辑者处于活动状态后注意到陈旧的条目。不过,这是一个主观猜测 - 使用多个编辑器同时在同一个 Web 部件上工作来重新创建问题的所有尝试都无法成功地重新创建列表中的项目。
也不确定这是否重要,但我只在单个 Web 部件上得到报告——Kentico WYSIWYG 编辑器的自定义子类。这可能不相关,但我认为这可能是一个线索。它也是我们使用的最常用的 Web 部件,因此它可能只是我们注意到的统计数据。
关于从哪里开始寻找任何想法?谢谢!
运行 Kentico 版本 11。
【问题讨论】:
【参考方案1】:Kentico 根据 Webpart 的 ID 映射可编辑文本和可编辑图像。因此,如果您更改页面的页面模板(这不太常见)并且在同一位置具有不同 ID 的可编辑文本 webpart,则内容将映射到相应的 webpart。
默认情况下,Kentico 设置为进行一些缓存。它不是很激进,但它是默认设置的。如果您没有实现您的站点,则还可以为自己的单独缓存设置 web 部件或页面,因此您可能需要检查页面常规选项卡以及可编辑文本 web 部件的性能属性。
【讨论】:
谢谢,布伦登!我已经对更改页面模板进行了一些测试,这似乎并没有影响“可编辑的 Web 部件”列表。还仔细检查了页面上的“输出缓存”——所有值都设置为“否”。 Web 部件仅选中了“部分缓存依赖项”。还有其他地方可以检查吗? 仅更改模板不会对列表产生影响。您需要更改模板并更改内容。如果您的可编辑文本 Web 部件具有不同的 ID,它将将该 Web 部件 ID 与其内容一起保存在列表中。因此,如果您更改了模板并更新了一些内容,然后再次更改了该页面的模板并添加/修改了一些内容,它将在列表中显示该新 ID。更好的选择是使用自定义页面类型与可编辑文本。可编辑的文本 Web 部件内容无法在整个站点中重复使用,并且难以维护。以上是关于Kentico “可编辑的 Web 部件”出现在“编辑区域和 Web 部件”下的页面中的主要内容,如果未能解决你的问题,请参考以下文章