CakePHP 2.1: Кэш браузера против кеша представления

У меня есть вопрос о том, как кэширование представлений и браузера работают вместе в CakePHP 2.1.

Я только что обновил свое приложение до CakePHP 2.1 и настроил кэширование HTTP с помощью нового метода $this->response->modified(который работает хорошо):

class ArticlesController extends AppController {
    public function view($id) {
        $article = $this->Article->find(
            'first',
            array('conditions' => array('Article.id' => $id))
        );

        $this->response->modified($article['Article']['modified']);

        $this->set(compact('article'));
    }
}

Я также установил Кэширование представлений CakePHP:

class ArticlesController extends AppController {
    public $cacheAction = array(
        'view' => array('callbacks' => true, 'duration' => "1 week"),
    }
}

Оба хорошо работают при независимом использовании. Однако, когда оба включены, кеширование представлений CakePHP, по-видимому, переопределяет кеширование браузера (в частности, заголовок Last-Modifiedне отправляется, когда страницы обслуживаются из кеша представлений CakePHP). Это останавливает браузер от кэширования страниц, которые обслуживаются из кеша представления CakePHP.

В идеале я хотел бы, чтобы браузер кэшировал страницы, даже если они обслуживаются из кэша CakePHP (т.е. я хотел бы, чтобы CakePHP возвращал заголовок Last-Modifiedи отвечал на запрос браузера Заголовок запроса If-Modified-Since, независимо от того, возвращает ли CakePHP кэшированную копию страницы или нет).

Мне просто интересно, является ли это ожидаемым поведением, делаю ли я что-то не так, или это что-то, что не было учтено (или не считается важным).

9
задан Tomba 16 March 2012 в 14:58
поделиться