symfony プロジェクトで ESI を有効にし、プライベート フラグメントを含むパブリックとしてマークされたホームページを提供しようとしました。
ホームページコントローラー:
$response = $this->render("myMainBundle:Page:home.html.twig", $data);
$response->setSharedMaxAge(60*60); //cache for 1 hour
return $response;
ホームページの表示:
{{ render_esi(controller('myMainBundle:Esi:homeHeaderNavigation')) }}
ESI コントローラー:
$response = $this->render("myMainBundle:Esi:home_header_navigation.html.twig");
$response->setPrivate(); //no not cache
return $response;
デバッグ モードでは、ホームページに埋め込みコンテンツが表示されますが、含まれているフラグメントが非公開としてマークされていても、応答は公開としてマークされます。プライベートでいいんじゃない?