Symfony对FOS路由的多个请求

Symfony对FOS路由的多个请求,symfony,Symfony,我有一个Symfony 2项目,加载有点慢。这页有点重,但我还是觉得这么慢很奇怪 我检查了Firefox中的network inspector,发现大约一半的加载时间是由多次调用routing?callback=fos.Router.setData引起的,每次都返回相同的javascript 例如,有一次有12个呼叫占用了3.84秒中的1.92秒,实际上是已经很长的加载时间的两倍 这些FOS脚本是什么?为什么我需要这么多?我的Symfony 2配置是否有问题?在提供路由服务时,FOSRoutin

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

我检查了Firefox中的network inspector,发现大约一半的加载时间是由多次调用routing?callback=fos.Router.setData引起的,每次都返回相同的javascript

例如,有一次有12个呼叫占用了3.84秒中的1.92秒,实际上是已经很长的加载时间的两倍

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

在提供路由服务时,FOSRouting可以通过两种方式工作:

正在调用的控制器会动态地路由每个请求。这对于dev环境很方便,因为它没有缓存。 可以使用php-app/console-fos:js-routing:dump命令将路由转储到静态js中。 看来你正在使用第一种选择。尝试使用second-这将把路由转储到静态js文件中,该文件将被服务,而不是控制器调用。阅读如何做到这一点

为了保持dev-env的便利性和prod-env的性能,您可以使用此类代码来包含路由。只要记住每次部署到prod时都要运行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 %}
为路由提供服务时的FOSRouting可以通过两种方式工作:

正在调用的控制器会动态地路由每个请求。这对于dev环境很方便,因为它没有缓存。 可以使用php-app/console-fos:js-routing:dump命令将路由转储到静态js中。 看来你正在使用第一种选择。尝试使用second-这将把路由转储到静态js文件中,该文件将被服务,而不是控制器调用。阅读如何做到这一点

为了保持dev-env的便利性和prod-env的性能,您可以使用此类代码来包含路由。只要记住每次部署到prod时都要运行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 %}

相当昂贵的便利。是的,似乎每个请求都对应于一条正在解决的路径。谢谢。这是一个相当昂贵的方便。是的,似乎每个请求都对应于一条正在解决的路径。非常感谢。