AEM Dispatcher - 缓存规则

AEM Dispatcher - cache rules

我希望了解 AEM 调度程序配置的一部分。这将在 /cache /rules 部分

看起来像下面的东西

/rules
        {
        # initial blanket deny
          /0000
          {
            /glob "*"
            /type "deny"
          }
          /0100
          {
           /glob "*.html"
           /type "deny"
          }
        }

规则 100 是否意味着调度程序未缓存任何 html 页面?

是的,规则

/0100
{
  /glob "*.html"
  /type "deny"
}

表示不会缓存扩展名为 .html 的文件。有关详细信息,请参阅 documenatation

我不确定在 Publish 实例上会完成什么。唯一合适的情况是,如果所有 HTML 页面都使用与静态部分内联的用户特定数据呈现(例如,在 JSP/HTL 脚本中呈现的用户数据负责显示整个页面) .不缓存 HTML 页面会给您的 Publisher 服务器场带来很大的压力。如果避免缓存动态数据是此配置的原因,则有更好的方法来处理来自 AEM 的用户特定数据服务,每个方法都需要更改您的应用程序和部署架构(AJAX calls, Server Side Includes, Sling Dynamic Inlcudes, Edge Side Includes, Templating Engines,命名一些)。

正如其他答案中所指出的,当在 Author 环境前面设置调度程序时,这可能是一个有效的规则。

为您问题中的规则添加另一个答案和解释:

/0100
{
    /glob "*.html"
    /type "deny"
}

是的(正如其他答案中所指出的),这意味着 .html 不会被缓存。这听起来可能很奇怪,但如 documentation.

中所述,当在 AEM 作者服务器前配置调度程序时,这种做法并不少见

A​​EM 作者的 html 页面几乎是特定于会话的,因此缓存它们会导致很多问题。

如果您想知道,如果您正在缓存 AEM 库和 static/non-user 特定内容,AEM 作者面前的调度程序真的很有效。

下面是简单的解释:

/rules
       {
        # initial blanket deny
          /0000
          {
            /glob "*"
            /type "deny"
          }
          /0100
          {
           /glob "*.html"
           /type "deny"
          }
        }

/0000 -- 规则不允许缓存任何内容。

如果您想要缓存某些内容,只需按照以下说明 allow

/rules

      /0100
      {
       /glob "*.html"
       /type "allow"
      }