3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

本番環境でのassets:precompile未実施エラー/ 初めてのAWS忘備録④

Posted at

前回の続き→ EC2内の環境構築【デプロイ】/ 初めてのAWS忘備録③

[ec2-user@ip... アプリ名]$ bundle exec puma -C config/puma/production.rb -e production

上記コマンドでアプリを起動させたは良いものの、実際の画面を見てみるとこのようなエラーが出た。
Image from Gyazo

エラーログを見にいくと、
ActionView::Template::Error (The asset "application.css" is not present in the asset pipeline.):
とあった。アセットされたapplication.cssがないらしい。

production環境では自動でcssjsをコンパイルしてくれないので(デフォルト設定がそうなっているので) 自分でプリコンパイルする必要があるそう。

[ec2-user@ip... アプリ名]$ bundle exec rails assets:precompile RAILS_ENV=production

public/assets/配下にプリコンパイルされたアセットが存在することを確認。

[ec2-user@ip... アプリ名]$ cd public/assets/
[ec2-user@ip... アプリ名]$ ls
application-111ac35321e379f53529ace176fe931c952be73f7ffd688b815ec21878126685.js
application-111ac35321e379f53529ace176fe931c952be73f7ffd688b815ec21878126685.js.gz
application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css
application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css.gz

次に、config/environments/production.rb内にある

config/environments/production.rb
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?

の値がfalseの場合、public配下のファイルが公開されないので、trueにするとうまく行く。

しかし直接true直書きは良くないので、エラーが出るのは、ENV['RAILS_SERVE_STATIC_FILES']に値が入っていないのが原因なので、ターミナルから変数を渡すことでtrueにする。

[ec2-user@ip... アプリ名]$ export RAILS_SERVE_STATIC_FILES=true

Nginxpumaの再起動すれば反映される。

参考記事

【Rails】本番環境におけるアセットプリコンパイルの設定
Rails5でnginx+pumaでproduction環境を構築する

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?