Работа HttpCache

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Работа HttpCache

Сообщение jakiro »

Всем привет.

Тут увидел, что гугл требует для сайта Cache-Control заголовок для документа
https://yadi.sk/d/ekfQ48x3rg6LZ

По такому случаю нашел HttpCache :

Код: Выделить всё

  public function behaviors()
  {
    return [
      [
        'class' => 'yii\filters\HttpCache',
        'only' => ['index'],
        'lastModified' => function ($action, $params) {
//          $q = new \yii\db\Query();
          return time() + 3600;
//          return $q->from('users')->max('updated_at');
        },
        'sessionCacheLimiter' => 'public',

//            'etagSeed' => function ($action, $params) {
//                return // generate ETag seed here
//            }
      ],
    ];
  }
Как выяснилось, было добавлено три заголовка (отмечены красным на скрине)
https://yadi.sk/d/4Ty_QlABrg6DS

lastModified возвращает time() + 3600, почему время одинаково с Date заголовком (заголовок формирование документа)?
Как дать заголовки всем элементам? Чтобы гугль был доволен
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: Работа HttpCache

Сообщение Йож »

Ну а как lastModified может быть позже текущего времени?
Поэтому браузер показывает время создания документа

не знаю правда - зачем Вы ставите такую дату, выводили бы дату публикации статьи или чего там выводите.

Можно еще сделать так:

Код: Выделить всё

return time() - 3600; 
чтоб документ был всегда "новым", только гугл все поймет :D
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Работа HttpCache

Сообщение jakiro »

Йож писал(а):Ну а как lastModified может быть позже текущего времени?
Поэтому браузер показывает время создания документа

не знаю правда - зачем Вы ставите такую дату, выводили бы дату публикации статьи или чего там выводите.

Можно еще сделать так:

Код: Выделить всё

return time() - 3600;
чтоб документ был всегда "новым", только гугл все поймет :D
Ему Expire нужен был.
Решил проблемы через подключенный модуль apache
Ответить