diff --git a/core/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php b/core/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php index e99caa1b..52f9062c 100644 --- a/core/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php +++ b/core/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php @@ -9,6 +9,7 @@ use Drupal\Core\PageCache\ResponsePolicyInterface; use Drupal\Core\Render\RenderCacheInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symfony\Component\HttpKernel\KernelEvents; @@ -159,6 +160,12 @@ public function onResponse(FilterResponseEvent $event) { return; } + // Dynamic Page Cache does not works with binary file responses. + // 'Symfony\Component\HttpFoundation\File\File' is not allowed in serialize(). + if ($response instanceof BinaryFileResponse) { + return; + } + // There's no work left to be done if this is a Dynamic Page Cache hit. if ($response->headers->get(self::HEADER) === 'HIT') { return;