如何解决极其缓慢的 rake assets:在 heroku 上预编译?
Posted
技术标签:
【中文标题】如何解决极其缓慢的 rake assets:在 heroku 上预编译?【英文标题】:How can I troubleshoot extremely slow rake assets:precompile on heroku? 【发布时间】:2014-03-13 11:10:00 【问题描述】:rake assets:precompile
在本地和在 heroku 上运行时都很快(
heroku run time rake assets:precompile --trace
(先清理)
在部署到 heroku 期间大约需要 10 分钟。
我如何找出问题所在并解决它?
作为参考,我已经尝试了所有这些:
rake assets:precompile is slow(尝试了 turbo-sprockets-rails3 并没有解决问题) rake assets:precompile taking extremely long to complete(试过 YUI,不行) Why is assets:precompile so slow on Heroku?(我们正在使用 ruby 2)我们使用的是 Rails 3.2.13,Ruby 2.0.0p353
【问题讨论】:
有一些关于跟踪/gemfile 的要点吗?如果您使用的是 turbo-sprockets-rails 之类的东西,那么只要您只使用部分重新编译,您应该会看到快速的本地编译。 【参考方案1】:您应该尝试将资产存储在 memcached/redis 数据库中,这样您只需要编译在您部署的每个版本中发生更改的那些:
使用 Heroku (http://addons.heroku.com/) 设置一个 redis/memcached 数据库或使用您已有的数据库
配置资产缓存存储(通过config/environments/production.rb
):
config.assets.cache_store = [ :redis_store,
url: ENV['REDIS_URL'] || 'redis://127.0.0.1/0',
namespace: 'assets'
]
使用这种方法,我们已经能够将资产预编译时间从几分钟缩短到
【讨论】:
这并不能解决根本问题,只有在您更改某些资产相关配置并需要重新编译所有内容时才有效。以上是关于如何解决极其缓慢的 rake assets:在 heroku 上预编译?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 rake assets:precompile 需要永远?