Capistrano - Carrierwave LoadError: cannot load such file -- carrierwave/processing/mime_types
Capistrano - Carrierwave LoadError: cannot load such file -- carrierwave/processing/mime_types
当我 运行 上限生产部署时,我一直 运行 使用载波解决这个错误。我在下面发布了我的载波设置。
Tasks: TOP => deploy:assets:precompile
The deploy has failed with an error: Exception while executing as deploy@104.236.193.148: rake exit status: 1
rake stdout: Nothing written
rake stderr: rake aborted!
LoadError: cannot load such file -- carrierwave/processing/mime_types
/home/deploy/aldrinclement/shared/bundle/ruby/2.3.0/gems/activesupport- 4.2.6/lib/active_support/dependencies.rb:274:in `require'
/home/deploy/aldrinclement/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `block in require'
/home/deploy/aldrinclement/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/deploy/aldrinclement/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
/home/deploy/aldrinclement/releases/20170103201423/app/uploaders/author_image_uploader.rb:1:in `<top (required)>'
Carrierwave.rb
if Rails.env.production? || Rails.env.staging?
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: Rails.application.secrets.AWS_ACCESS_KEY_ID,
aws_secret_access_key: Rails.application.secrets.AWS_SECRET_ACCESS_KEY,
region: Settings.aws_region
}
config.fog_directory = Settings.aws_s3_bucket_name
config.permissions = 0666
config.directory_permissions = 0777
config.storage = :fog
end
end
CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/
我的 secrets.yml 定义了 AWS 密钥 - 我 运行 丢失了 aws 密钥,并通过 deploy.rb 文件中的符号链接 secrets.yml 解决了这个问题。我在我的 Gemfile 中使用 carrierwave 1.0.0。
mime_types 文件已从 carrierwave 中删除,参见 commit。
您可能在 app/uploaders/author_image_uploader.rb
的顶部有 require 'carrierwave/processing/mime_types'
。您需要从项目中删除 carrierwave mime_types 引用并切换到 mime-types gem,它现在是 carrierwave 的运行时依赖项,或者回滚到以前的 carrierwave 版本。
当我 运行 上限生产部署时,我一直 运行 使用载波解决这个错误。我在下面发布了我的载波设置。
Tasks: TOP => deploy:assets:precompile
The deploy has failed with an error: Exception while executing as deploy@104.236.193.148: rake exit status: 1
rake stdout: Nothing written
rake stderr: rake aborted!
LoadError: cannot load such file -- carrierwave/processing/mime_types
/home/deploy/aldrinclement/shared/bundle/ruby/2.3.0/gems/activesupport- 4.2.6/lib/active_support/dependencies.rb:274:in `require'
/home/deploy/aldrinclement/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `block in require'
/home/deploy/aldrinclement/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/deploy/aldrinclement/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
/home/deploy/aldrinclement/releases/20170103201423/app/uploaders/author_image_uploader.rb:1:in `<top (required)>'
Carrierwave.rb
if Rails.env.production? || Rails.env.staging?
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: Rails.application.secrets.AWS_ACCESS_KEY_ID,
aws_secret_access_key: Rails.application.secrets.AWS_SECRET_ACCESS_KEY,
region: Settings.aws_region
}
config.fog_directory = Settings.aws_s3_bucket_name
config.permissions = 0666
config.directory_permissions = 0777
config.storage = :fog
end
end
CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/
我的 secrets.yml 定义了 AWS 密钥 - 我 运行 丢失了 aws 密钥,并通过 deploy.rb 文件中的符号链接 secrets.yml 解决了这个问题。我在我的 Gemfile 中使用 carrierwave 1.0.0。
mime_types 文件已从 carrierwave 中删除,参见 commit。
您可能在 app/uploaders/author_image_uploader.rb
的顶部有 require 'carrierwave/processing/mime_types'
。您需要从项目中删除 carrierwave mime_types 引用并切换到 mime-types gem,它现在是 carrierwave 的运行时依赖项,或者回滚到以前的 carrierwave 版本。