Mam pytanie dotyczące sposobu buforowania widoku i buforowania przeglądarki w CakePHP 2.1.CakePHP 2.1: Pamięć podręczna przeglądarki a widok podręczny
Właśnie zmodernizowane moim app CakePHP 2.1 i skonfigurować buforowanie HTTP przy użyciu nowej metody $this->response->modified
(który działa dobrze):
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'));
}
}
Mam również skonfigurować CakePHP widok buforowanie:
class ArticlesController extends AppController {
public $cacheAction = array(
'view' => array('callbacks' => true, 'duration' => "1 week"),
}
}
Oba działają dobrze, gdy są używane niezależnie. Jednak gdy oba są włączone, buforowanie widoku CakePHP wydaje się nadpisywać buforowanie przeglądarki (konkretnie, nagłówek nie jest wysyłany, gdy strony są wyświetlane z bufora podręcznego widoku CakePHP). Dzięki temu przeglądarka nie buforuje stron, które są wyświetlane z bufora podręcznego CakePHP.
Idealnie chciałabym przeglądarkę do stron pamięci podręcznej, nawet jeśli są one podawane z pamięci podręcznej CakePHP (tj Chciałbym CakePHP zwrócić Last-Modified
nagłówek, a odpowiedzi na If-Modified-Since
nagłówka żądania przeglądarki, niezależnie od tego, czy CakePHP ma się zwrócenie kopii strony z pamięci podręcznej lub nie).
Zastanawiam się, czy to jest oczekiwane zachowanie, czy robię coś złego, czy jest to coś, co nie zostało uwzględnione (lub nie jest uważane za ważne).
Tak, wszelkie modyfikacje obiektu Response wykonane przez działanie kontrolera nie będą buforowane, dotyczy to również ustawień nagłówków kontroli pamięci podręcznej. Istnieje otwarty bilet na ten temat (ale nie związany z buforowaniem): http://cakephp.lighthouseapp.com/projects/42648/tickets/2358-cachehelper-defect-with-response Jedynym zalecanym rozwiązaniem jest ręczne ustawienie nagłówków w obu układ lub 'Controller :: beforeFilter()' (z włączoną funkcją zwrotną). – pixelistik