繁体   English   中英

耙资产:预编译生产缓慢

[英]rake assets:precompile is slow in production

我的ruby on rails应用程序大约需要半小时才能完成部署。 最长的步骤是

RAILS_ENV=production RAILS_GROUPS=assets bundle exec rake assets:precompile

大约需要1073155ms

每次部署我都需要等待很长时间。

我用

ckeditor
rails_admin

我想是他们减慢了我的部署速度,但是我没有证据,我也不知道该怎么做。

解决它。

我的其他环境如下:

rails 4.0.3
ruby 2.1.1

我关于资产的production.rb是

config.serve_static_assets = false

# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass

# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = true

# Generate digests for assets URLs.
config.assets.digest = true

# Version of your assets, change this if you want to expire all your assets.
config.assets.version = '1.0'

尝试跳过编译ckeditor资产

配置/环境/ production.rb

  require_relative '../../lib/assets/selective_assets_compressor'
  config.assets.js_compressor = SelectiveAssetsCompressor.new

LIB /资产/ selective_assets_compressor.rb

class SelectiveAssetsCompressor < Uglifier
  def initialize(options = {})
    super(options)
  end

  def compress(string)
    if string =~ /CKSource/
      string
    else
      super(string)
    end
  end
end

为了更快地进行资产预编译,可以在config / application.rb中将config.assets.initialize_on_precompile设置为false。 Heroku要求此为假。

config.assets.initialize_on_precompile = false

如果这样做,请确保在本地测试rake asset:precompile,因为未加载完整的环境,因此不会加载引擎(或其他gems),这可能会导致资产丢失。

另一方面,您可以在本地部署之前执行资产预编译并部署预编译的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM