0

我正在尝试缓存个人资料用户页面。为此,我使用:

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

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

但是,应用程序从不使用缓存,因为$this->getRequest()->getEtags()(在isNotModified函数中使用)总是空的。如果我设置

$response->setPublic()

一切正常。那么,如何在 Private 上下文中使用缓存?

谢谢 !

4

1 回答 1

0

在 Symfony 2 中使用私有响应时,它设置以下标头:

Cache-Control: private

根据HTTP 1/1 规范

私人的

表示响应消息的全部或部分是针对单个用户的,并且不得由共享缓存缓存。这允许源服务器声明响应的指定部分仅针对一个用户,而不是对其他用户请求的有效响应。私有(非共享)缓存可以缓存响应。

这意味着您不能ETag标头与Cache-Control: private.

于 2012-07-23T09:44:12.293 回答