Skip to content
Snippets Groups Projects
Commit 0c14180d authored by Jørn Åne's avatar Jørn Åne
Browse files

Document static asset cache configuration

parent fa02e492
No related branches found
No related tags found
No related merge requests found
...@@ -866,12 +866,23 @@ $config = [ ...@@ -866,12 +866,23 @@ $config = [
* The serving of the resources can be configured through these settings. * The serving of the resources can be configured through these settings.
*/ */
'assets' => [ 'assets' => [
/*
* These settings adjust the caching headers that are sent
* when serving static resources.
*/
'caching' => [ 'caching' => [
/** /*
* These settings adjust the caching headers that are sent * Amount of seconds before the resource should be fetched again
* when serving static resources.
*/ */
'max_age' => 86400, 'max_age' => 86400,
/*
* Calculate a checksum of every file and send it to the browser
* This allows the browser to avoid downloading assets again in situations
* where the Last-Modified header cannot be trusted,
* for example in cluster setups
*
* Defaults false
*/
'etag' => false, 'etag' => false,
], ],
], ],
......
...@@ -264,11 +264,17 @@ class Module ...@@ -264,11 +264,17 @@ class Module
} }
} }
$assetConfig = $config->getArray('assets', ['caching' => ['max_age' => 86400, 'etag' => false]]); $assetConfig = $config->getConfigItem('assets', new Configuration([], '[assets]'));
$cacheConfig = $assetConfig->getConfigItem('caching', new Configuration([], '[assets][caching]'));
$response = new BinaryFileResponse($path); $response = new BinaryFileResponse($path);
$response->setCache(['public' => true, 'max_age' => $assetConfig['caching']['max_age']]); $response->setCache([
// "public" allows response caching even if the request was authenticated,
// which is exactly what we want for static resources
'public' => true,
'max_age' => (string)$cacheConfig->getInteger('max_age', 86400)
]);
$response->setAutoLastModified(); $response->setAutoLastModified();
if ($assetConfig['caching']['etag']) { if ($cacheConfig->getBoolean('etag', false)) {
$response->setAutoEtag(); $response->setAutoEtag();
} }
$response->isNotModified($request); $response->isNotModified($request);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment