我正在尝试使用symfony2进行清漆缓存。 设置是清漆 - > NGNIX - > PHP-FPM
我的代码:
public function indexAction($city_url)
{
$response = new Response();
$response->setETag('foobar123fo');
if ($response->isNotModified($this->getRequest())) {
// return the 304 Response immediately
return $response;
}
$data = array('randA'=> rand() );
$response = $this->render('Foo:Event:index.html.twig', $data);
$response->setCache(array(
'public' => true,
));
$response->setETag('foobar123fo');
$response->setSharedMaxAge(10);
return $response;
这是按预期工作的 - 我获得了缓存命中,但Symfony的调试工具栏也被缓存了。任何人都可以告诉我,如何排除工具栏被缓存?我希望看到,在提供缓存结果时,确实没有例如SQL-Querys。
非常感谢!
答案 0 :(得分:1)
如果页面完全缓存在Varnish上,请求甚至不会访问您的Web服务器。不仅没有SQL查询,而且根本没有调用Symfony。
调试工具栏是页面的一部分,这就是它被缓存的原因。再次......仅在第一次请求时调用Symfony。
再次阅读官方文档中的HTTP Cache章节。其中有两篇文章值得一读: