herokuでアップロードした画像がしばらく経つと表示されなくなってしまう問題を解決しようと、
Rails5でcarrierwaveのみで画像のアップロードを実装していた状態に、fogとAWSS3を追加するコードを書いたところ、herokuにデプロイする際に、「Precompiling assets failed.」のエラーが出るようになってしまいました。
Qiitaで見つけたconfig.assets.initialize_on_precompile = falseをconfig/application.rbに記述するというものを試して見ましたが、同じようにエラーが出てしまいます。。
fogとAWSS3を追加したコードは下記です。
ruby
1「config/initializers/carrierwave.rb内」 2require 'carrierwave/storage/abstract' 3require 'carrierwave/storage/file' 4require 'carrierwave/storage/fog' 5 6CarrierWave.configure do |config| 7 if Rails.env.production? 8 config.storage :fog 9 config.fog_provider = 'fog/aws' 10 config.fog_directory = 'bmenu' 11 config.fog_credentials = { 12 provider: 'AWS', 13 aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], 14 aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], 15 region: ENV['AWS_REGION'], 16 path_style: true 17 } 18 else 19 config.storage :file 20 config.enable_processing = false if Rails.env.test? 21 end 22end 23 24CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:].\-+]/ 25 26「gemfile内」 27gem 'fog-aws' 28 29「uploaders/image_uploader.rb内」 30 if Rails.env.production? || Rails.env.staging? 31 storage :fog 32 else 33 storage :file 34 end 35
herokuのエラーメッセージは下記です
```remote: /tmp/build_da08d46c63402779b737e4d17868ab3f/vendor/bundle/ruby/2.4.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
remote: Tasks: TOP => environment
remote: (See full trace by running task with --trace)
remote:
remote: !
remote: ! Precompiling assets failed.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to otokomeshi0141.
remote:
To https://git.heroku.com/otokomeshi0141.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/otokomeshi0141.git'
コード
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。