我正在尝试缓存个人资料用户页面。为此,我使用:
$response = new Response();
$response->setETag(md5($response->getContent()));
if ($response->isNotModified($this->getRequest())) {
return $response;
}
但是,应用程序从不使用缓存,因为 $ this-> getRequest() - > getEtags()(在 isNotModified 函数中使用)始终为空。如果我设置
$response->setPublic()
一切都好。那么,我如何在私有环境中使用缓存?
Thx!
答案 0 :(得分:0)
在Symfony 2中使用私有响应时,它会设置以下标题:
Cache-Control: private
<强>私有强>
表示全部或部分响应消息仅供单个用户使用,不得由共享缓存缓存。这允许源服务器声明响应的指定部分仅针对一个用户,并且不是其他用户的请求的有效响应。私有(非共享)缓存可以缓存响应。
这意味着您不能使用ETag
标题{/ 1}}。