gpt4 book ai didi

heroku - 为什么 Assets 是 :precompile so slow on Heroku?

转载 作者:行者123 更新时间:2023-12-01 01:12:35 27 4
gpt4 key购买 nike

我的部署设置是拥有 Heroku 预编译 Assets 。我希望它们被预编译,所以我可以将它们发送到 CDN(通过 asset_sync),我希望在 Heroku 上完成,所以我的 repo 中没有任何已编译的 Assets 。我使用 Heroku's guide 设置了它这一直很有效。我加了 turbo-sprockets-rails3速度提升。一切正常,然后停止了;我不明白为什么。

现在,当我部署(没有 public/assets )时 assets:precompile Heroku 上的 Rake 任务超时。为了查看真正需要多长时间,我进入了一个 shell ( heroku run bash ):

~ $ time bundle exec rake assets:precompile
AssetSync: YAML file found /app/config/asset_sync.yml settings will be merged into the configuration
AssetSync: Syncing.
Using: Directory Search of /app/public/assets
AssetSync: Done.

real 19m29.575s
user 17m43.690s
sys 0m28.480s

二十分钟!但是当我在本地运行它(2011 iMac)时,只有几分钟:
$ env RAILS_ENV=production time bundle exec rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
~/.rbenv/versions/1.9.3-p327-perf/bin/ruby ~/.rbenv/versions/1.9.3-p327-perf/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace
** Invoke assets:precompile:all (first_time)
** Invoke assets:cache:clean (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
AssetSync: YAML file found ~/Code/Ruby/myproject-rails/config/asset_sync.yml settings will be merged into the configuration
** Execute assets:cache:clean
** Execute assets:precompile:all
AssetSync: Syncing.
Using: Directory Search of ~/Code/Ruby/myproject-rails/public/assets
Uploading: assets/application-3a6de939348195e9610f1321df27837a.js
Uploading: assets/application-3a6de939348195e9610f1321df27837a.js.gz
Uploading: assets/jquery.min-959a5819c76e1508f5a8655c289c0de8.map
Uploading: assets/jquery.min.map
Uploading: assets/rails_admin/rails_admin-76cfbf31a605916a55eee29464ca3e6d.js
Uploading: assets/rails_admin/rails_admin-76cfbf31a605916a55eee29464ca3e6d.js.gz
AssetSync: Done.
179.92 real 19.29 user 3.98 sys

一周前我写了 Heroku 支持,几天后他们说他们会将其升级到他们的 Ruby 构建团队,但我仍然没有听到任何消息。 Stack Overflow 上的聪明人有没有可能的解决方案?

最佳答案

解决方案是使用告诉 Heroku 使用 Ruby 1.9.3,就像我的本地机器一样。显然 1.9.3 在 Assets 编译方面比 Heroku 默认的 1.9.2 快得多。

要修复它,请确保您的 Gemfile开始:

source "https://rubygems.org"
ruby "1.9.3"
# ...

更多在 Heroku docs on Ruby versions .

关于heroku - 为什么 Assets 是 :precompile so slow on Heroku?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448401/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com