Когда я устанавливаю кэш по нотации на любом контроллере моего symfony проекта:
/**
* @Cache(smaxage="301", maxage="300", public=true)
*/
public function fooAction(Request $request)
{
[...]
}
max-age и publi c параметры переопределяются при достижении браузера:
Response headers
Cache-Control: max-age=0, must-revalidate, private, s-maxage=301
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Fri, 10 Jan 2020 13:12:46 GMT
Expires: Fri, 10 Jan 2020 13:12:46 GMT
Server: nginx
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Debug-Token: da1477
X-Debug-Token-Link: http://proyect.local:8080/_profiler/da1477
X-XSS-Protection: 1; mode=block
Symfony, хотя профилировщик получает все настройки правильно:
Я пытаюсь найти причину безуспешно. Вот те вещи, которые я уже пробовал:
- Сервер имеет значение Nginx и не имеет конфигурации кэша по умолчанию.
- Это происходит в локальной среде, но также и в prod, поэтому CDN отсутствует
- Пробовал другой синтаксис: @Cache (expires = "+ 2 days")
- Отключено fos_rest
- Использовать метод setMaxAge из symfony Ответ.