Skip to content
Snippets Groups Projects

Issue #3454507: Aggregated asset generation causes uncacheable assets

Closed Issue #3454507: Aggregated asset generation causes uncacheable assets
Closed Howard Ablat requested to merge issue/drupal-3454507:11.x into 11.x
Files
2
@@ -16,6 +16,7 @@
use Drupal\Core\Theme\ThemeManagerInterface;
use Drupal\system\FileDownloadController;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
@@ -183,6 +184,11 @@ public function deliver(Request $request, string $file_name) {
$generated_hash = $this->generateHash($group);
$data = $this->optimizer->optimizeGroup($group);
$response = new Response($data, 200, [
'Cache-control' => static::CACHE_CONTROL,
'Content-Type' => $this->contentType,
]);
// However, the hash from the library definitions in code may not match the
// hash from the URL. This can be for three reasons:
// 1. Someone has requested an outdated URL, i.e. from a cached page, which
@@ -198,10 +204,15 @@ public function deliver(Request $request, string $file_name) {
if (hash_equals($generated_hash, $received_hash)) {
$this->dumper->dumpToUri($data, $this->assetType, $uri);
}
return new Response($data, 200, [
'Cache-control' => static::CACHE_CONTROL,
'Content-Type' => $this->contentType,
]);
else {
$expected_filename = $this->fileExtension . '_' . $generated_hash . '.' . $this->fileExtension;
$response = new RedirectResponse(
str_replace($file_name, $expected_filename, $request->getRequestUri()),
301,
['Cache-Control' => 'public, max-age=3600, must-revalidate'],
);
}
return $response;
}
/**
Loading