2

我在我的项目中使用内部路由并使用输出 url 进行缓存(清漆)。
代码 :

_internal:
    resource: "@FrameworkBundle/Resources/config/routing/internal.xml"
    prefix:   /parts

和 twig (base twig) 包含代码:
{% render "my_controller:getHeaderAction" with {}, { "standalone" : true } %}
{% render "my_controller:getSidebarAction" with {}, { "standalone" : true } %}
{% render "my_controller:getFooterAction" with {}, { "standalone" : true } %}

这会生成如下网址:
/parts/my_controller%3AgetHeaderAction/none.html /parts/my_controller%3AgetSidebarAction/none.html /parts/my_controller%3AgetFooterAction/none.html

我试图为 SidebarAction 获取单独的 Url,例如:
/parts/prefix/my_controller%3AgetSidebarAction/none.html

但不知道该怎么做,因为内部路由会自动生成 url。
有什么解决方法吗?
谢谢你的时间。

4

1 回答 1

1

您需要手动定义路由规则my_controller:getSidebarAction,然后用url标签渲染它。

假设你使用 Symfony 2.3,语法是

{{ render_esi(url('latest_news', { 'max': 5 })) }}

请注意,我使用了特殊render_esi标签,这是在 Symfony 2.2 中添加的,以便为 Varnish 等反向代理添加更好的 ESI 支持。

更多信息在这里http://symfony.com/doc/current/book/http_cache.html#using-esi-in-symfony2

于 2013-05-26T16:11:14.207 回答