2014-05-22 4 views
0

J'essaie de faire en sorte que mon application Symfony2 mette en cache une page en utilisant le modèle d'expiration, mais elle ne voit pas la configuration du s-maxage correctement et le navigateur renvoie toujours s-maxage = 0 quelle que soit la valeur que je mets à.Symfony2 HttpCache setSharedMaxAge() toujours 0

Je suis actuellement en utilisant

public function indexAction() 
{ 
    $response = $this->render('HtgPageBundle:Default:fullPage.html.twig'); 
    $response->setMaxAge(60); 
    $response->setSharedMaxAge(60); 

    return $response; 
} 

Je n'ai pas utilisé response- $ mis> setPublic() comme cela se fait automatiquement à l'aide du setSharedMaxAge().

La réponse que je reçois du navigateur est toujours

Cache-Control:max-age=60, public, s-maxage=0 
X-Symfony-Cache:GET /page/privacy-policy: miss 

Mais je me attendais: -

Cache-Control:max-age=60, public, s-maxage=60 
X-Symfony-Cache:GET /page/privacy-policy: store 

Creuser dans ce que je trouve que setSharedMaxAge est appelé se deux fois, une fois quand je Je l'appelle comme ci-dessus, et à ce stade, il est en train de définir la bonne valeur. Par la suite, il est à nouveau appelé via la méthode Symfony \ Component \ HttpFoundation \ Response :: setTtl() mais ici, il met la valeur à 0, mais je ne sais pas pourquoi il le fait.

J'utilise Symfony v2.4.4

Toutes les suggestions

Répondre