1
1

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.

【Rails】production環境でCSS等が反映されないとき(ActionController::RoutingError (No route matches [GET] ....

Posted at

環境

Ruby 3.0.2
Rails 6.1

問題

CSSなどをプリコンパイルの対象に指定し,コンパイル実行後にproduction環境にてページを表示してみたらCSS等の設定が全く反映されていなかった.また,ログ(log/production.log)を確認してみると

ActionController::RoutingError (No route matches [GET] "/assets/ ... .css"):

のようなメッセージが残っていた.

解決方法

まず,コンパイルするときに環境を指定していなかったのが問題だった.以下のように,環境を指定してコンパイルをする.

$ RAILS_ENV=production bundle exec rails assets:precompile

なお,bundle exec railsの部分は環境構築のしかたによって適宜変えて実行すべきところだろう.

次に,config/environments/production.rbを開き,config.public_file_server_enabledに直接trueを指定する(コメントアウトしてある部分は,もともとあった記述).

# config.public_file_server_enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
config.public_file_server_enabled = true

以上で,自分の場合は問題が解決した.

参考

<問題の解決に役立ったサイト>
[プリコンパイルの方法について(2015年の記事.古い)]
https://blog.naichilab.com/entry/2015/11/08/005606
[No route matches [GET] /assets について(質問と回答)]
https://coderedirect.com/questions/99092/no-route-matches-get-assets

<より深く理解するために>
[アセットパイプライン]
https://railsguides.jp/asset_pipeline.html

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?