rake资产:预编译很慢

Evg*_*nii 25 ruby-on-rails-3.1 asset-pipeline

命令"rake assets:precompile"对我来说非常慢.特别是在我的Amazon EC2 Micro生产服务器上,它没有很多处理器资源.在EC2上,我必须在每次部署期间等待1分钟或更长时间,仅用于此预编译任务.有没有办法让它更快?

以前我用Jammit来压缩/缩小css和js.Jammit在同一个网站和服务器上的工作速度提高了近10倍.

ndb*_*ent 30

如果您不需要加载Rails环境,则应该使用以下命令禁用它:

config.assets.initialize_on_precompile = false
Run Code Online (Sandbox Code Playgroud)

编辑:我刚刚写了一个宝石来解决这个问题,称为turbo-sprockets-rails3.它assets:precompile通过仅重新编译已更改的文件来加速您的速度,并且仅编译一次以生成所有资产.

如果你可以帮我测试一下turbo-sprockets-rails3宝石,那就太棒了,如果你有什么问题请告诉我.

  • 你的宝石很棒.用d3和预编译解决了我的问题.谢啦 (3认同)

Ric*_*lse 10

Rails 3.1.0中存在一个错误,它在预编译过程中包含太多文件.如果您拥有许多资产js和css资产,这可能是速度缓慢的原因.

另一个是Sprockets(进行编译的宝石)更复杂,并且必须允许更多选项--scss,coffeescript和erb.因此我怀疑它只是连接和缩小会更慢.

如建议的那样,如果文件仍然存在问题,您可以在部署文件之前对其进行预编译.