2012-07-23 59 views
0

我試圖緩存配置文件用戶頁面。對於這一點,我用:在Symfony 2中使用私有上下文緩存

$response = new Response(); 
$response->setETag(md5($response->getContent())); 

if ($response->isNotModified($this->getRequest())) { 
    return $response; 
} 

但是,應用程序從不使用緩存,因爲$這個 - > Request()方法 - > getEtags()(使用在isNotModified功能)始終是空的。如果我設置

$response->setPublic() 

一切正常。那麼,我如何在私有環境中使用緩存?

Thx!

回答

0

當使用的Symfony 2 私人響應時,它設置下列的頭:

Cache-Control: private 

按照HTTP 1/1 specification

私人

表示所有或者部分響應消息是針對si的用戶並不能被共享緩存緩存。這允許源服務器聲明響應的指定部分僅適用於一個用戶,而不是其他用戶請求的有效響應。私有(非共享)緩存可以緩存響應。

這意味着,你不能使用ETag頭與Cache-Control: private

+0

好的,我會用Max-Age或其他方式嘗試。謝謝 ! – rgazelot 2012-07-23 09:47:48