Drupal 8 có hai cấp độ bộ đệm, bộ đệm trang và bộ đệm trang động.
Có, bạn có thể chặn bộ đệm trang động như những gì @ 4k4 đã đề cập. Vấn đề bạn gặp phải có nhiều khả năng chặn bộ đệm trang. Chìa khóa là ở đây .
Có một vài giải pháp cho việc này:
Thêm lớp mới thực hiện 'HttpKernelInterface' và đăng ký 'http_middleware' với mức độ ưu tiên cao hơn 200 (280 sẽ làm). Xem lớp 'PageCache' và các triển khai để tham khảo.
Tạo lớp mới để thay đổi 'PageCache' hiện có bằng cách mở rộng từ 'ServiceProviderBase'. Kiểm tra này để tham khảo ở đây . Sau đó, tạo lớp mới để mở rộng 'PageCache'.
Đây là tài liệu tham khảo:
Đây là StaticCacheServiceProvider.php:
/**
* Modifies the language manager service.
*/
class StaticCacheServiceProvider extends ServiceProviderBase
{
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container)
{
// Overrides language_manager class to test domain language negotiation.
$definition = $container->getDefinition('http_middleware.page_cache');
$definition->setClass('Drupal\your_module\StackMiddleware\StaticCache');
}
}
Đây là StaticCache.php:
/**
* Executes the page caching before the main kernel takes over the request.
*/
class StaticCache extends PageCache
{
/**
* {@inheritdoc}
*/
public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true)
{
// do special logic here.
$response = parent::handle($request, $type, $catch);
return $response;
}
}
Hy vọng giúp.