Symfony对FOS路由的多个请求

时间:2014-10-17 08:34:43

标签: symfony

我有一个Symfony 2项目加载有点慢。页面有点沉重,但我仍觉得这么慢很奇怪。

我检查了Firefox中的网络检查员,注意到大约一半的加载时间是由多次调用routing?callback=fos.Router.setData造成的,每次都返回相同的javascript。

例如,有一次有12次通话在总共3.84秒内占用了1.92秒,实际上已经加倍了已经很长的装载时间......

这些FOS脚本是什么?为什么我需要这么多脚本?我的Symfony 2配置有什么问题吗?

1 个答案:

答案 0 :(得分:4)

提供路线时,

FOSRouting可以通过两种方式工作:

  1. 调用控制器,每个请求(动态)生成路由。这对于开发环境很方便,因为它没有缓存。
  2. 可以使用php app/console fos:js-routing:dump命令将路由转储到静态js中。
  3. 您似乎正在使用第一个选项。尝试使用秒 - 这会将您的路由转储到静态js文件中,而不是控制器调用。阅读docs如何做到这一点。

    为了方便dev env和prod env的性能,您可以使用此类代码来包含您的路线。只需记住每次部署都要运行fos:js-routing:dump命令:

    {% if app.debug %}
           <script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>
    {% else %}
        {% javascripts 'js/fos_js_routes.js' %}
           <script src="{{ asset_url }}"></script>
        {% endjavascripts %}
    {% endif %}