diff --git a/src/EventSubscriber/CacheControlOverrideSubscriber.php b/src/EventSubscriber/CacheControlOverrideSubscriber.php index db40367..ffbdf0b 100644 --- a/src/EventSubscriber/CacheControlOverrideSubscriber.php +++ b/src/EventSubscriber/CacheControlOverrideSubscriber.php @@ -2,9 +2,11 @@ namespace Drupal\cache_control_override\EventSubscriber; +use DateTime; use Drupal\Core\Cache\Cache; use Drupal\Core\Cache\CacheableResponseInterface; use Drupal\Core\Config\ConfigFactoryInterface; +use Exception; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -76,6 +78,13 @@ class CacheControlOverrideSubscriber implements EventSubscriberInterface { } } $response->headers->set('Cache-Control', 'public, max-age=' . $max_age); + + try { + // This is needed because page_cache uses this header to invalidate the page cache. + $response->setExpires(new DateTime('+' . $max_age . ' seconds')); + } catch (Exception $e) { + // Could not set Expires header because max-age is invalid. + } } }