Caching Drupal 8奇怪的缓存问题

Caching Drupal 8奇怪的缓存问题,caching,twig,browser-cache,drupal-8,Caching,Twig,Browser Cache,Drupal 8,我在Drupal站点上遇到了奇怪的缓存问题 第一个D8页面缓存被关闭 然后,我在页面上有一些内容,这些内容会随着每次页面加载而更改-为了简单起见,我正在从twig模板打印当前时间: {{ "now"|date("H:i:s") }} 它的工作原理如下: 在清除Drupal的缓存并打开页面后,我可以看到当前时间,正如预期的那样 当我重新加载页面时,我仍然可以看到上一次(我以主管理员身份登录)。无论我重新加载页面多少次,我都能看到清除缓存后第一次加载页面的时间 当我第一次从另一个浏览器打开同一页

我在Drupal站点上遇到了奇怪的缓存问题

第一个D8页面缓存被关闭

然后,我在页面上有一些内容,这些内容会随着每次页面加载而更改-为了简单起见,我正在从twig模板打印当前时间:

{{ "now"|date("H:i:s") }}
它的工作原理如下:

  • 在清除Drupal的缓存并打开页面后,我可以看到当前时间,正如预期的那样
  • 当我重新加载页面时,我仍然可以看到上一次(我以主管理员身份登录)。无论我重新加载页面多少次,我都能看到清除缓存后第一次加载页面的时间
  • 当我第一次从另一个浏览器打开同一页时,我会看到当前时间,在这之后,对于任何重新加载,我会看到在该浏览器中打开第一页的时间
  • 当我检查从浏览器加载的页面时,它表示页面是从服务器加载的,而不是由浏览器缓存的
  • 清理cookies没有帮助。第一次清除cookie时,我会注销并查看当前时间一次,但每次清除cookie时,我都会看到相同的时间

你知道这里发生了什么以及如何禁用缓存吗?

你只需禁用内部页面缓存模块并清除缓存即可

将其添加到你的themename.theme文件中

function themename_preprocess(&$vars, $hook) {
  $vars['#cache']['max-age'] = 0;
}
并清除缓存


在drupal.org上,您可以阅读关于如何准备开发环境和在开发过程中禁用缓存的好指南

你能进一步描述一下这个过程吗?@oualiid你能解释清楚吗。您的解决方案是避免单页缓存,对吗?只需在后端模块页中找到该模块并禁用它。但我担心它会完全关闭为匿名用户缓存的所有静态内容的缓存。它是一些块缓存,但按照您在这里描述的方式被禁用。奇怪的是,即使在后端,所有缓存都被禁用。D8仍在缓存content.MilanG。。正如我在下面评论的那样,你找到解决上述问题的方法了吗。正如@lamp5所解释的,这是块缓存。可能是varnish(ESI包括)缓存的?MilanG。。您知道如何避免页面级缓存,仅针对单个细枝文件。不确定是否可以针对单个细枝文件(如果我错了,请更正我),但仅针对块。是的,块级别我知道,我确实需要避免缓存一个小树枝文件。如果你有任何想法,一定要告诉我。