前提・実現したいこと
再デプロイすると
rake aborted!NoMethodError: undefined method `[]' for nil:NilClass
が発生します。
原因は恐らくプリコンパイルしているassetsファイルにあるCSSだと思いますが、
CSSの内容を編集しても治りません。
原因はどこにあるのでしょうか?
一週間程色々試してみたのですが治らず困っています。
発生している問題・エラーメッセージ
remote: rake aborted! remote: NoMethodError: undefined method `[]' for nil:NilClass remote: /tmp/build_aeab412a/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:278:in `sprockets_context' remote: /tmp/build_aeab412a/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:124:in `asset_path' remote: /tmp/build_aeab412a/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:137:in `asset_url' remote: /tmp/build_aeab412a/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:155:in `image_url' 略 remote: Tasks: TOP => assets:precompile 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 アプリ名. remote: To https://git.heroku.com/アプリ名.git ! [remote rejected] main -> main (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/アプリ名.git'
CSS編集内容
デプロイ後に編集したCSSファイルは下記のみです。
style.css
1 background-image: url('ファイル名.png'); 2 ↓ 3 background-image: image-url('ファイル名.png');
仮説
NoMethodErrorの下にsass_processor.rb:278とあったので、
最初はこの部分に問題があると思っておりましたが、
sass_processor.rbなんてファイルは存在しません。
teratail内の質問を見ていると、CSSファイルに問題があった方が多いので、
やはりプリコンパイルしているassets内のCSSに問題があると考えています。
現在の状況
本番環境は動いていますが、デプロイ後の編集内容が反映されていない状態です。
ブランチを切り忘れたため、main(マスターブランチ)で最後まで作業しており、
編集内容はリモートにpushしているため、ローカルの内容は全てリモートに反映されています。
heroku configで環境変数を確認したところ、
RAILS_MASTER_KEYという変数名で値が設定されていたので問題ないかと思います。
git statusで状況を確認したところ
nothing to commit, working tree clean でした。
試したこと
・application.cssをapplication.css.scssに変更する
・production.rbのconfig.assets.compile = false を true に変える
・不要なCSSファイルの削除
以上です。
原因はやはりCSSでしょうか?
teratailでは同じエラーの質問がいくつか見受けられますが、どれを試しても上手くいかなかったので
他に何かやり方がないかご教示頂きたいです。
回答1件
あなたの回答
tips
プレビュー