Rails6 CSS/JavaScript/이미지 변경이 반영되지 않음 assets:precompile

5432 단어 배포Rails6Rails

개발 환경에서 한 변경을 프로덕션 환경에서도 반영하려고 하면 전혀 해주지 않았다.



환경



AWS(EC2)
puma, Nginx
Ruby 2.6.6, Rails 6.0.3.2

발생한 문제



"좋아. 개발환경에서 거기 거기에 정리했고, 리모트에서 pull하고 프로덕션 환경에서도 반영해라-."

qiita.rb
$ 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 관련으로 고생하고 있지.
htps : // 이 m / 아 sh t 짱 / ms / 48d64 960d436f8b6f78

빨리 지워줘



라고 해도 완벽하게 지우는 것은 무서우므로 별명으로 남겨 둔다.
(나중에 도움이 되었기 때문에 아루)

qiita.rb
$ mv public/packs/js public/packs/js_bak
$ mv tmp tmp_bak

재도전



qiita.rb
$ bundle exec rails assets:precompile RAILS_ENV=production

なんやかんや

Compiling...
Compiled all packs in /home/ec2-user/FANTRA/public/packs

할 수 있었다! ! ! ! ! ! ! ! !

자, 브라우저를 열고 확인하십시오.





배포하고 나서 가장 싫은 화면이 나왔다.
이 화면에서 예쁜 여자라든지 고양이라든지 여러가지 치유해 주는 화상으로 바꾸었으면 한다. . .

배포하고 나서 배웠으니 냉정하게 로그를 확인.



qiita.rb
$ 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도.

qiita.rb
$ mv tmp_bak/ tmp
mv public/packs/js_bak/ public/packs/js

만약에 restart

qiita.rb
$ sudo service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]

브라우저를 확인하면 아름답게 변경 사항이 반영되었습니다.

요약



webpacker는 성가신 ~.

좋은 웹페이지 즐겨찾기