Rails6 CSS/JavaScript/画像の変更が反映されない assets:precompile
開発環境で行った変更を本番環境でも反映させようとしたら、全然してくれなかった。
環境
AWS(EC2)
puma, Nginx
Ruby 2.6.6, Rails 6.0.3.2
起こった問題
「よーし。開発環境でそこそこにまとまったし、リモートからpullして本番環境でも反映してやろーっと。」
$ bundle exec rails assets:precompile RAILS_ENV=production
[1/4] Resolving packages...
[2/4] Fetching packages...
なんやかんや
Everything's up-to-date. Nothing to do
「なんやて。Nothing to doやと? 仕事サボんなやゴラぁぁぁああぁ」
悪の根源
それはwebpackerである。
こーいう時の問題は大体こいつとのこと。
ディレクトリ内のtmpを消してみたりpublic/packs/js以下を消してみたりするとうまくいくケースがあるみたい。
実は以前にもwebpacker関連で苦労してんな。
https://qiita.com/ashketcham/items/48d64e960d436f8b6f78
早速消し去ってやる
と、言っても完璧に消し去るのは怖いので別名で残しておく。
(後々に役に立ったのであーる)
$ mv public/packs/js public/packs/js_bak
$ mv tmp tmp_bak
再挑戦
$ bundle exec rails assets:precompile RAILS_ENV=production
なんやかんや
Compiling...
Compiled all packs in /home/ec2-user/FANTRA/public/packs
できた!!!!!!!!!
さぁブラウザを開いて確認や
デプロイしてから一番大嫌いな画面が出てきた。
この画面で綺麗な女性とか猫とか色々癒してくれる画像に変えて欲しい。。。
デプロイしてから学んだから、冷静にログを確認。
$ sudo tail -f /var/log/nginx/error.log
/tmp/sockets/puma.sock failed (2: No such file or directory)
tmp以下がないと起こってる。
ここで念のために別名で残していた、tmp_bakが役に立つ!!!!
ついでにpublic/packs/js_bakも。
$ mv tmp_bak/ tmp
mv public/packs/js_bak/ public/packs/js
念のためrestart
$ sudo service nginx restart
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
ブラウザを確認すると、綺麗に変更が反映されていた
まとめ
webpackerって厄介やな〜。
Author And Source
この問題について(Rails6 CSS/JavaScript/画像の変更が反映されない assets:precompile), 我々は、より多くの情報をここで見つけました https://qiita.com/ashketcham/items/f7455360413f0317d35b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .