Drupal 8 奇怪的缓存问题
Drupal 8 strange caching issue
我在 Drupal 站点上遇到奇怪的缓存问题。
第一个 D8 页面缓存已关闭。
然后我在页面上有一些内容会随着每次页面加载而变化 - 为了简单起见,我从 twig 模板打印当前时间:
{{ "now"|date("H:i:s") }}
它是这样工作的:
- 清除 Drupal 的缓存并打开页面后,我可以看到当前时间,正如预期的那样
- 当我重新加载页面时,我仍然看到之前的内容(我以管理员身份登录)。无论我重新加载页面多少次,我都会在清除缓存后看到第一页加载的时间
- 当我第一次从另一个浏览器打开同一个页面时,我会看到当前时间,之后每次重新加载时,我都会看到第一个页面在该浏览器中打开的时间
- 当我检查从浏览器加载的页面时,它说页面是从服务器加载的 - 浏览器没有缓存
- 清除 cookie 没有帮助。我第一次清除 cookie 我注销了,我看到了一次当前时间,但对于每次其他 cookie 清除,我都看到了相同的时间。
知道这里发生了什么以及如何禁用该缓存吗?
您需要禁用内部页面缓存模块并清除缓存
将此添加到您的 themename.theme 文件
function themename_preprocess(&$vars, $hook) {
$vars['#cache']['max-age'] = 0;
}
并清除缓存。
编辑,在 drupal.org 上,您可以阅读有关如何准备开发环境和在开发过程中禁用缓存的好指南。 Guide
我在 Drupal 站点上遇到奇怪的缓存问题。
第一个 D8 页面缓存已关闭。
然后我在页面上有一些内容会随着每次页面加载而变化 - 为了简单起见,我从 twig 模板打印当前时间:
{{ "now"|date("H:i:s") }}
它是这样工作的:
- 清除 Drupal 的缓存并打开页面后,我可以看到当前时间,正如预期的那样
- 当我重新加载页面时,我仍然看到之前的内容(我以管理员身份登录)。无论我重新加载页面多少次,我都会在清除缓存后看到第一页加载的时间
- 当我第一次从另一个浏览器打开同一个页面时,我会看到当前时间,之后每次重新加载时,我都会看到第一个页面在该浏览器中打开的时间
- 当我检查从浏览器加载的页面时,它说页面是从服务器加载的 - 浏览器没有缓存
- 清除 cookie 没有帮助。我第一次清除 cookie 我注销了,我看到了一次当前时间,但对于每次其他 cookie 清除,我都看到了相同的时间。
知道这里发生了什么以及如何禁用该缓存吗?
您需要禁用内部页面缓存模块并清除缓存
将此添加到您的 themename.theme 文件
function themename_preprocess(&$vars, $hook) {
$vars['#cache']['max-age'] = 0;
}
并清除缓存。
编辑,在 drupal.org 上,您可以阅读有关如何准备开发环境和在开发过程中禁用缓存的好指南。 Guide