Symfony的资产转储和 - 手表很慢

时间:2014-10-29 13:51:08

标签: symfony sass assetic compass

我在MacBook Pro上的Ubuntu VirtualBox内部以dev模式运行Symfony2应用程序。该网站运行速度非常快,直到我想转储和/或观看(app / console assetic:dump)资产。转储42个scss和一些js文件大约需要20-30秒。观察者也很慢,在更改一个文件后,需要10-15秒才能完成更改。这是正常的吗?在我的本地机器上,用罗盘编译文件只需5秒钟。

任何想法,我如何加快整个过程?

ruby: 1.8.7
compass: 1.0.1
sass: 3.4.6

1 个答案:

答案 0 :(得分:0)

这就是dev环境的工作原理。您正在使用在开发时随时更改的资产和代码,因此Symfony会在每个页面加载之间清除其编译的缓存,以便为您呈现最新结果。

Assetic还会将文件分解为单独的CSS文件,而不是将它们聚合到一个文件中,以便您可以在浏览器检查器中调试SCSS文件。由于您正在使用42个SCSS文件进行动态编译,因此assetic:dump需要一段时间并不奇怪。

观察者是相同的场景,因为如果它检测到任何单个文件中的更改,它就会完全执行上述操作。这只是能够与您的开发环境一起设计和开发的权衡。

为什么它比香草compass安装慢?推测,Assetic如何管理文件还涉及更多步骤 - 它必须从模板中找到它们,重写路径(如果启用了cssrewrite),移动文件,然后进行编译。

您的选择是:

  1. 优化您的SCSS文件以便更快地编译
  2. 减少SCSS文件的数量
  3. 停止使用资产进行资产管理
  4. 但是一旦将其部署到prod环境,您将拥有更长时间缓存的所有内容,因此您不会遇到动态资产编译的20-30秒问题。