Symfony2 ESI:响应标记为公共,即使子请求包括私有响应

时间:2015-02-23 10:10:17

标签: php symfony esi

我为我的symfony项目启用了ESI,并尝试提供标记为public的主页,其中包含一个私有片段。

主页控制器:

$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;

在调试模式下,我的主页获得嵌入内容,但响应被标记为公共,即使包含的片段被标记为私有。 它不应该是私人的吗?

1 个答案:

答案 0 :(得分:0)

我使用hinclude (symfony docs),所以我可以这样做

{{ render_hinclude(controller('...')) }}

并为每条路线设置不同的缓存规则。