我正在使用Liip Cache Control bundle处理项目中的缓存。通过使用此捆绑包,您可以像这样配置缓存:
liip_cache_control:
rules:
- { path: /admin, controls: { private: true}, vary: [Accept-Encoding] }
- { path: ^/_internal, controls: {private: true, max_age: 0}}
- { path: ^/([^/]*)/live/time(.*), controls: { public: true, max_age: 1, s_maxage: 1 }, vary: [Accept-Encoding,Cookie] }
现在,每个esi(内部)路由都不会被缓存。但是我现在我想缓存一个内部请求。任何想法,我可以如何配置呢?我找不到实际用于执行此请求的路由。
亲切的问候,
大安
最佳答案
所有 ESI 调用都通过 _internal 路由 ( example from Using ESI in Symfony2 ) 处理:
# app/config/routing.yml
_internal:
resource: "@FrameworkBundle/Resources/config/routing/internal.xml"
prefix: /_internal
LiipCacheControlBundle 的文档提到了如何生成内部路由:
When using ESI, [...] To generate the corresponding _internal route, inject the http_kernel into your controller and use HttpKernel::generateInternalUri with the parameters as in the twig render tag.
您是否尝试将适当的规则添加到 liip_cache_control 列表中?我想它应该以“/_internal”开头(尝试使用 generateInternalUri 来查看实际生成的内容)。
关于php - Symfony2 选择性 ESI 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11431967/