1

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

任何想法,我怎样才能加快整个过程?

ruby: 1.8.7
compass: 1.0.1
sass: 3.4.6
4

1 回答 1

0

环境就是这样dev运作的。您正在使用在开发过程中动态更改的资产和代码,因此 Symfony 会在每次页面加载之间清除其编译缓存,以便为您呈现最新结果。

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

观察者是相同的场景,因为如果它检测到任何单个文件中的更改,它所做的一切都与上述完全相同。这只是能够在开发环境中动态设计和开发的权衡。

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

您的选择是:

  1. 优化您的 SCSS 文件以加快编译速度
  2. 减少 SCSS 文件的数量
  3. 停止使用assetic进行资产管理

但是一旦你将它部署到prod环境中,你将把所有东西缓存更长的时间,因此你不会遇到动态编译资产的 20-30 秒问题。

于 2014-10-29T14:05:00.890 回答