【问题标题】:Partial caching dependencies in KenticoKentico 中的部分缓存依赖项
【发布时间】:2011-11-11 07:34:37
【问题描述】:

如何在 Kentico CMS 中使用部分依赖缓存?

这是一个非常常见的示例,我需要但不知道如何正确设置带有依赖项的部分缓存(在门户模式下,尽管我认为这也应该适用于其他开发模式):

  • /首页(带中继器)
  • /新闻
    • 第 1 项(因此路径 = /News/Item-1)
    • 第 2 项(因此路径 = /News/Item-2)

主页有一个Repeater Web 部件,其中列出了最新的新闻项目。它的路径为“/%”,文档类型过滤器设置为“CMS.News”;显然还有一个“部分缓存分钟”值> 0。没有自定义代码;只是门户 Web 部件和标准文档类型。

我应该使用什么确切的“部分缓存依赖项”字符串,以便当第三条新闻立即反映在主页上,否则使用缓存?

Kentico 确实发布了几篇博客文章,包括 Deep dive: Cache dependencies,但我很难将那里讨论的理论应用于网站。我什至在 cmets 那里问了一些问题,但那里的 Kentico 支持人员的回答并没有真正的帮助。

据我在那篇文章中所说,他们说要使用 node|%CurrentSite.SiteName%}|/News|childnodes,它似乎有一些神奇的关键字,如 node 和一些宏元素,如 {%CurrentSite.SiteName%}。 (我知道所有项目都需要小写,所以我已经知道他们的建议不是真正一致的。至少应该是node|%CurrentSite.SiteName%}|/news|childnodes。我需要在宏上强制小写吗?)首先,那字符串对我不起作用——它仍在缓存主页热门新​​闻转发器(是的,整页缓存已关闭);第二,我如何构建这样的字符串并调试它应该是什么?链接的帖子确实有一个示例网格,但它(对我来说)令人困惑并且并不详尽。

任何人都可以在任何地方提供一个很好的例子或更好的博客文章参考来以另一种方式解释这一点吗?

编辑:我意识到我问的这个问题相当广泛。如果我们缩小范围以回答以下问题怎么样:如何确定使用哪些设置来缓存中继器,该中继器依赖于另一个文件夹中的更改?

【问题讨论】:

  • 使用 Kentico 博客文章中提到的调试工具,我终于想到,在这种情况下,让它在 v5.5R2 中正确使用缓存依赖项的唯一方法是使用系统属性缓存设置(不是部分缓存)并使用 cmsdatasource||en-us|{%CurrentSite.SiteName%}|/news/% 的值,这与文章声称的工作方式并不完全一致。但是更好的文档以及为什么我的解决方案有效的问题仍然存在。

标签: caching kentico


【解决方案1】:

您在帖子中提到的魔术词基本上是特定对象的关键字。你可以在caching options 描述中看到它们——“node”、“nodes”、“nodeid”被列为最常见的使用节点。但下面将描述任何对象的语法,您将在其中使用该对象类名称。

关于 Kentico 的 CTO 的博文和他在 cmets 中的回答,看来他忽略或误解了您的问题。您正在谈论部分缓存,他正在为您提供有关“正常”缓存设置的示例。触摸键中的宏在所有其他缓存设置中被解析(小写或大写无关紧要),但在部分缓存中不解析。此功能将在即将发布的 6.0 版本中提供。

所以,现在您必须在触控键缓存设置中硬编码站点名称。

【讨论】:

    【解决方案2】:

    我打开缓存调试并查看正在生成的缓存名称。我看到我的设置为...

    node|{%CurrentSite.SiteName%}|/test-section/|childnodes

    ...这显然是不正确的,永远不会起作用!

    看起来宏没有在 Partial Cache Dependencies 属性中得到解析。因此,您不能使用“{%CurrentSite.SiteName%}”代替站点名称。这是对我有用的部分缓存依赖项的示例...

    node|mytestsite|/test-section/|childnodes

    使用上面的部分缓存依赖,我一删除子项就刷新缓存。

    【讨论】:

    • 但是在参考文章中,一位 Kentico 员工说“您可以使用宏将可变部分插入到缓存键中。”也许缓存 key,但不在 dependencies 中?你是这样想的吗?标准 Web 部件“允许宏”是否会影响此处宏的使用?
    • 可能是的。我知道您可以将宏与缓存键一起使用,否则它们将毫无用处。而且在我的测试中,宏肯定没有被转换为缓存依赖。
    猜你喜欢
    • 2018-06-20
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 2014-11-10
    • 2022-12-18
    相关资源
    最近更新 更多