滚动
内部页面缓存(Internal Page Cache)
Drupal 8 使用了 Internal Page Cache 模块,推荐用于中小型网站。这个核心模块默认启用,用于为匿名用户缓存页面。其位置在 core/modules/page_cache。
该功能通过加快网站响应速度来提升性能。匿名用户首次请求的页面会被保存,并在后续请求中重复使用;根据您的网站配置,性能提升可能非常显著。
若要加快登录用户的访问速度,请查看模块 Dynamic Page Cache(动态页面缓存)。
如果网站为匿名用户提供个性化内容(例如购物车等会话相关的动态内容),则建议禁用 Internal Page Cache 模块。此模块假定所有匿名用户看到的页面完全相同。这类网站仍可使用动态页面缓存模块,或通过 JavaScript + AJAX 实现个性化功能。
配置 Internal Page Cache 模块
在「性能」页面(admin/config/development/performance),您可以设置浏览器和代理缓存页面的时间长度。除此之外,没有其他配置选项。该值会作为浏览器和代理使用的 Cache-Control 头的最大缓存时间。而 Internal Page Cache 本身会缓存页面,直到页面失效或设置了 Expires 头为止。
与 Drupal 7 的比较
- Drupal 7 不支持即时更新;而在 Drupal 8 中,当内容更改时,页面缓存会立即刷新。
- Drupal 7 每次内容更新都需要清除整个页面缓存;而 Drupal 8 使用 缓存标签(Cache Tags) 机制,仅清除与已更改内容相关的缓存页面。
- Drupal 7 在许多情况下会继续显示过期页面;即使是核心模块也无法完全清除页面缓存。
- Drupal 7 的内部页面缓存默认未启用,许多用户不知道需要手动启用它。而 Drupal 8 默认为匿名用户启用页面缓存,这得益于前面提到的缓存标签机制。在 Drupal 7 中,如果默认启用内部页面缓存,会导致错误行为(因为当时还没有缓存标签机制)。