最近、Rails 3.2.13 アプリを新しくリリースされた 4.0.0 にアップグレードして、Heroku にデプロイしようとしました。残念ながら、このガイドに従っても、アセットはまだ適切にプリコンパイルされていないようです。もちろん、rails_12factor
gem は既に追加しており、アプリを 4.0.0 に適切にアップグレードするためにいくつかのことも行いました。開発モードでは非常にうまく機能し、すべてのテストはまだ成功しています。ただし、Heroku にはまだアセットが表示されません。
実行して気付いたことの 1 つheroku run ls public/assets
は、Heroku が実際にアセットをプリコンパイルでき、それらのファイルに対してコマンドをapp/assets
実行すると、コンパイルされたバージョンのアセットが表示されることです。cat
ただし、ブラウザでファイルにアクセスすると、常に 404 が返されます。
Heroku は実際に Rails 4 に対応していますか?
編集:
3.2.13 から 4 にアップグレードするために行ったことのリストを次に示します。
Rails 4 で使用されなくなったため、アセット グループを削除しました。
3.2.13
レールのバージョンを からに更新します4.0.0
active_resource/railties
Active_resource がレールから依存関係として削除されたため、application.rb からrequire 行を削除します。依存関係として 4.0.0 ではなく railties 4.0.0.rc2 を使用しているため、対応するマスター ブランチを使用するように sass-rails と coffee-rails を更新します。
デバイスのバージョンを 3.0.0.rc に更新します
protected_attributes を追加して、まだ strong_parameters に切り替えることなく、Rails 4 への移行を容易にします
環境設定を変更して config.eagerload を追加し、config.whiny_nils を削除して非推奨の警告を削除します。
confirm() の構文を変更して非推奨の警告を削除
ハッシュ構文をハッシュ ロケットから 1.9.3 構文に変更します。
自動説明構成を削除して、非推奨の警告を削除します
rake rails:update:bin を使用して bin ディレクトリを追加します
rails_12factor
herokuにホストできるgemを追加heroku の Gemfile に ruby バージョンを追加
編集2
また、プリコンパイル中に Heroku でエラーが発生しなかったことも言及する価値があると思います。実際には、アセットのプリコンパイルに成功したと言われているため、機能しなかったのは奇妙です。