我有一个相当大的 Rails 应用程序 (Rails 3.2.3),使用 Assets 管道。 assets文件夹中有不少文件。
在 1.8.7 下,运行 rake assets:precompile
需要 4 分钟。这很长,但由于 Assets 的绝对数量,我愿意忍受它。
问题是应用程序升级到 1.9.2 后,运行 rake assets:precompile
需要 28 分钟。
以下是相关的 gem 版本:
rails (= 3.2.3)
uglifier (1.2.3)
execjs (~> 1.3.0)
therubyracer (~> 0.9.9)
libv8 (~> 3.3.10)
sprockets (2.1.2)
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
当我 tail -f log/production.log
时,我看到正在编译的 Assets ,但我无法确定单个 Assets 的长时间延迟(尽管我确实看到了相同的情况 Assets 在日志中多次——大概是因为每个 Assets 有多个步骤?)
我还应该尝试哪些其他步骤来帮助诊断问题所在?
最佳答案
Ruby 1.9.2 在加载时间上有严重的倒退,我相信它随着加载的文件数量呈指数级增长。这对 Rails 应用造成了严重打击,我怀疑这是您看到的 Assets 编译时间大大增加的原因。
这已在 1.9.3 中修复,因此请尝试升级到那个版本或 backporting the load patch to 1.9.2 .
关于ruby-on-rails - 抽成 Assets :precompile takes 28 minutes on 1. 9.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10655994/