4

アセット パイプラインが機能するように、heroku のアプリを cedar スタックにアップグレードしました。アセットをローカルでコンパイルすることを選択して、 heroku のドキュメントに記載されている指示に従いました。

これにより、ディレクトリ public/assets が作成されました。本番環境のすべてが完全に機能します(css、js、問題なし)。開発環境に戻ると、js が正しく機能しないようです。

環境内/ production.rb

config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true
config.assets.digest = true

環境/development.rb

config.assets.compress = false
config.assets.debug = true
config.assets.compile = true

ソース ページを確認したところ、すべてのファイルが正しく読み込まれ、エントリが重複することはありませんでした。アセットをローカルでコンパイルするか本番環境でコンパイルするかについてのSOの質問をいくつか読みましたが、どれも役に立たないようです。開発中の JavaScript コードを復元するために他に欠けているものはありますか?これは正しい手順ですか? ありがとうございました

4

1 に答える 1

7

わかりました私はそれを解決したようです。

environment/development.rb で、この行を変更します

config.assets.debug = true

これに

config.assets.debug = false

これが機能する理由はわかりませんが、レールガイドと引用を読むことから:

「デバッグ モードがオフの場合、Sprockets はすべてのファイルで必要なプリプロセッサを連結して実行します。デバッグ モードをオフにすると、代わりに上記のマニフェストが生成されます。」

<script src="/assets/application.js" type="text/javascript"></script>

これが同様の問題を抱えている人に役立つことを願っています。

于 2012-05-10T08:17:19.497 に答える