mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge pull request #8233 from dhensby/pulls/4.2/caching-fixes
This is a cherry-picked PR from 4.2 -> 4.2.0
This commit is contained in:
commit
d46410c49b
@ -26,6 +26,8 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable
|
||||
|
||||
const STATE_DISABLED = 'disabled';
|
||||
|
||||
const STATE_DEFAULT = 'default';
|
||||
|
||||
/**
|
||||
* Generate response for the given request
|
||||
*
|
||||
@ -90,6 +92,9 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable
|
||||
self::STATE_ENABLED => [
|
||||
'must-revalidate' => true,
|
||||
],
|
||||
self::STATE_DEFAULT => [
|
||||
'no-cache' => true,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
@ -98,7 +103,7 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable
|
||||
* @config
|
||||
* @var string
|
||||
*/
|
||||
protected static $defaultState = self::STATE_DISABLED;
|
||||
private static $defaultState = self::STATE_DEFAULT;
|
||||
|
||||
/**
|
||||
* Current state
|
||||
@ -766,14 +771,9 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable
|
||||
}
|
||||
|
||||
// Errors disable cache (unless some errors are cached intentionally by usercode)
|
||||
if ($response->isError()) {
|
||||
if ($response->isError() || $response->isRedirect()) {
|
||||
// Even if publicCache(true) is specified, errors will be uncacheable
|
||||
$this->disableCache(true);
|
||||
}
|
||||
|
||||
// Don't cache redirects
|
||||
if ($response->isRedirect()) {
|
||||
$this->disableCache(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user