2013-05-25 77 views
2

我在我的項目中使用內部路由並使用輸出url進行緩存(Varnish)。
代碼:在Symfony2中緩存的內部路由

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

和樹枝(基樹枝)包含代碼:
{% 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像:
/parts/prefix/my_controller%3AgetSidebarAction/none.html

,但無法弄清楚如何做到這一點,因爲內部路由自動生成的URL。
對此有任何解決方法?
謝謝你的時間。

回答

1

您需要手動定義my_controller:getSidebarAction的路由規則,然後使用url標記進行渲染。

假設你正在使用的Symfony 2.3,語法將

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

通知我使用特殊render_esi標籤,這在Symfony的2.2加入添加像漆反向代理更好ESI支持。

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