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キャッシュの章をもう一度読んでください。それに推奨される2つの記事があり、これらも読む価値があります。

于 2012-06-29T23:09:48.813 に答える