【发布时间】:2016-12-01 16:33:31
【问题描述】:
如何让 varnish 缓存处于不同状态的动态菜单?
我当前的项目(基于 Symfony 2.8)使用 KnpMenuBundle 和 varnish 来缓存页面。它还利用ESI 来禁用缓存某些页面上的特定元素。其中包括菜单。但是由于这不是一个变化很大的元素,我想知道是否可以缓存菜单的不同状态并将相关的状态传递给当前调用菜单的页面。
涉及的主要文件如下:
main.html.twig
{{ render_esi(controller('AppBundle:Menu:mainESI')) }}
AppBundle\Controller\MenuController.php
public function mainESIAction($path = null)
{
return $this->render('menu/main_menu_esi.html.twig', [
'path' => $path
]);
}
菜单/main_menu_esi.html.twig
{{ knp_menu_render('main-menu', {'template':'menu/main_menu.html.twig'}) }}
【问题讨论】: