Добрый день. Пользуюсь сервисом для перевода контента qTranslate. По идее он должен хранить на своем cdn переведенные страницы, кеш, 24 часа.
В моем случае кеш не работает, судя по ответу страницы в заголовке x-gt-cache-status:BYPASS. Поддержка отвечает что нужно изменить заголовок ответа, Cache-Control, сейчас он no-cache. Как это сделать для всего приложения сразу?
Заголовок ответа Cache-Control
Re: Заголовок ответа Cache-Control
Добавил в контроллер такое поведение:
И это сработало, ответ получен от cdn, Cache-Control:public, max-age=3600.
И так для каждого маршрута?
Код: Выделить всё
public function behaviors()
{
return [
'httpCache' => [
'class' => 'yii\filters\HttpCache',
'lastModified' => function ($action, $params) {
return time();
},
'sessionCacheLimiter' => 'public',
'cacheControlHeader' => 'public, max-age=3600',
],
];
И так для каждого маршрута?
Re: Заголовок ответа Cache-Control
По логике, да. Как вариант можно сделать общий контроллер, для всех ваших контроллеров (если их очень много и всем нужно прописать одну и ту же логику). Внутри него указать настройку и при создании контроллера экстендится от общего.
Можно попробовать на уровне конфига, если получится
Код: Выделить всё
'on beforeAction' => function ($event) {
//магия
},
Re: Заголовок ответа Cache-Control
Благодарю!