[Rails] またまたCSSだけが本番環境に反映されない
はじめに
前にも同じようなことがあって、一応応急的な処置で対処したのですが、それすら通用しなくなって途方に暮れていました。
またまた、応急処置的な対処ですが、解決しましたので記事で残しておきます。
アプリの構造やインフラ周りも私の場合で書いてますので、コマンドやファイルの違いなどがあると思いますがご容赦いただけたらと思います。
前に書いた記事はこちら↓
https://qiita.com/minhee/items/fba5564cb8c17109a372
解決策
前に書いた記事とやっていることは同じですが、より手動にしたという感じです。
①まずDocker環境を置いているEC2インスタンスにターミナルからログイン
②下記コマンドでアプリを置いているコンテナのIDを確認し、コンテナ内に入る
# コンテナのIDを確認
docker ps
# コンテナの中に入る
docker exec -it 確認したコンテナid sh
③precompileされたCSSファイルを消しに行く
# precompileされているファイルが置いているディレクトリへ移動
cd public/assets
# lsコマンドで拡張子がcssのファイルを確認して削除
ls
rm 拡張子がcssのファイル
# 元のディレクトリに戻る
cd ../..
④元のディレクトリでassets:precompileをする
bundle exec rails assets:precompile RAILS_ENV=production
⑤コンテナを立ち上げ直す
コンテナから出てnginxを立ち上げ直さないと読み込まないと思いますので、コンテナを立ち上げなおします。
# コンテナから出る
exit
# 一度コンテナを落とす(私の場合オプションをつけないとうまく落とせないのでつけてます)
docker-compose down --remove-orphans
# 立ち上げる
docker-compose -f docker-compose.yml -f docker-compose.production.yml up
これでCSSの反映が無事できました。
最後に
本当は試したいことがたくさんあるのですが
とりあえず数日後に大事な面接でアプリをお見せしないといけないので、これ以上この周辺はとりあえず触らないようにしています。
当日反映されていない!ってなるのが怖すぎます。
手動でrmコマンドでファイルを消していましたが、コンテナ内で
bundle exec rails assets:clobber RAILS_ENV=production
を使ってprecompileされているものを消して、bundle exec rails assets:precompile RAILS_ENV=production
で再作成すればいいのではないかとも思いますが、置いときます。
Author And Source
この問題について([Rails] またまたCSSだけが本番環境に反映されない), 我々は、より多くの情報をここで見つけました https://qiita.com/minhee/items/f3c3ce984385dd26b048著者帰属:元の著者の情報は、元の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 .