8

最近、Rails 3.2.13 アプリを新しくリリースされた 4.0.0 にアップグレードして、Heroku にデプロイしようとしました。残念ながら、このガイドに従っても、アセットはまだ適切にプリコンパイルされていないようです。もちろん、rails_12factorgem は既に追加しており、アプリを 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/railtiesActive_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_12factorherokuにホストできるgemを追加

  • heroku の Gemfile に ruby​​ バージョンを追加

編集2

また、プリコンパイル中に Heroku でエラーが発生しなかったことも言及する価値があると思います。実際には、アセットのプリコンパイルに成功したと言われているため、機能しなかったのは奇妙です。

4

4 に答える 4

1

Try moving all gems from assets group in Gemfile to main scope. Assets group is no longer used in Rails 4 and that may be causing the problem.

于 2013-07-05T00:11:17.463 に答える
0

あまり機能しないバージョンを使用する

gem 'twitter-bootstrap-rails', '= 2.2.6'
gem 'less-rails', '2.3.3'
于 2013-09-11T09:36:44.310 に答える
-3

production.rb ファイルに、次の行があることを確認してくださいconfig.assets.compile = true。それは私にとって問題を解決しました。

于 2013-08-18T20:47:09.947 に答える