Herokuは、資産パイプライン用のアプリを準備するために私の資産を事前にコンパイルしていません
-
26-10-2019 - |
質問
Rails 3.1.1を使用して、Heroku/Cedarで動作する資産パイプラインのセットアップを取得するのに少し苦労しています
私はアプリケーションをプッシュし、それは正常に起動しましたが、「資産パイプラインの準備」というメッセージはありませんでしたが、静的資産は提供されていません。 Slugコンピレーション時間やランタイムアセットコンピレーションが行われていないため、JS、CSS、または画像は見つかりません。
どんな助けも大歓迎です。
彼らは、これで展開中に何が起こるべきかを説明しています リンク これを以下にまとめます:
Heroku CedarのRails 3.1アプリケーションを使用すると、Herokuを押すと、Rake Task Bundle exec Rake Assets:Precompileを使用して、展開プロセスの一部としてアセットが事前にコンパイルされます。
解決
解決策はこれでした:
Mongoidを使用しており、構成の一部として「Rails/All」ラインを取り外しています。その結果、スプロケットはロードされていませんでした。
Rails 3.1+で行う必要があることも追加されます require "sprockets/railtie"
アプリケーションでは、スプロケットが有効になるように。ブーム、作品。
この情報は、Mongoid Webサイトにあります ここ. 。これは、Application.RBに完全な「Rails/All」をロードしていない可能性がある人にとっては知っておくと便利です。Sprocketsは、アセットパイプラインが機能するために明らかに必要です。
他のヒント
Rails 3.1 HerokuのAsset Pipelineでこの記事を見たことがありますか? http://devcenter.heroku.com/articles/rails31_heroku_cedar. 。昨日それをレビューし、そこからいくつかのヒントを手に入れました。
これが新しいRails 3.1サイトまたはRails 3.1にアップグレードされたサイトである場合、確認すべきことは、生産のために資産パイプラインが有効になっていることです - デフォルトでRails 3.1の使用
config.assets.enabled = false
アプリケーションでrb。あなたはあなたの資産にアプリ/資産を使用していて、公共ではなく/