0

我正在尝试将清漆缓存与 symfony2 一起使用。设置是 Varnish -> 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 查询。

非常感谢!

4

1 回答 1

1

如果页面在 Varnish 上完全缓存,请求甚至不会访问您的 Web 服务器。不仅没有进行 SQL 查询,而且根本没有调用 Symfony。

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

再次阅读官方文档中的HTTP Cache章节。里面推荐了两篇文章,也值得一读:

于 2012-06-29T23:09:48.813 回答