2012-06-29 47 views
0

我试图使用symfony2清漆缓存。 设置为光油 - > NGNIX - > PHP-FPMSymfony2 Varnish NGINX缓存/ DebugToolbar

我的代码:

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。

非常感谢!

回答

1

如果页面完全缓存在Varnish上,请求甚至不会触发您的Web服务器。不仅没有SQL查询,而且Symfony也没有被调用。

调试工具栏是页面的一部分,这就是它被缓存的原因。再次... Symfony仅在第一次请求时被调用。

在官方文档中再次阅读HTTP Cache章。湖中有推荐的两篇文章,这也是值得一读: