質問: development staging では問題なく動いてるJSがProductionにデプロイした途端動かなくなり困っています Production環境はほとんどさわる権限がないため、何がおきてるかすらわからず おそらくアセットパイプラインの設定の違いだと思うのですが 開発環境でProduction環境のアセットパイプラインを再現する方法はないでしょうか 追記 とりあえずプリコンパイルだけでもやってみようと思ったのですが https://railsguides.jp/asset_pipeline.html Rails ガイドにのっているコマンドをうってもエラーになります ``` RAILS_ENV=production rails assets:precompile Error: Command 'assets:precompile' not recognized ```
回答: `bundle exec rails s -b 0.0.0.0 -e production` だとシークレットトークンがないといわれて実行できず 一時的に config/encironment/production.yml を config/encironment/development.yml にコピーして起動 これでJSの404エラーになったので再現できたと思ったんですが config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? という行があって本番環境ではこれが true になってたのですが development では false になるみたいで public 以下のファイルが全部ルーティングエラーで404になるみたいです ここを一時的に true にして 手動でプリコンパイルすることでとりあえずアセットパイプラインの状態だけは本番環境と同じになったと思います