2012-06-08 6 views
6

RailsアプリケーションをHerokuにデプロイした後、javascript関数は動作しません。なぜherokuへの展開でjavascriptが動作しないのですか?

ファイルがコンパイルされているように見えます(ただし、縮小されたファイルではわかりにくいです)。

JavaScriptが正常に動作しない理由を理解するための手順の論理的なプロセスとは何ですか(本番環境で正常に動作します)。

ありがとうございました

+0

どのバージョンのレールとヒロクスタック?あなたがレール3.1 +を使用している場合、私はあなたがherokuの杉のスタックにあるべきだと信じています – Dty

+0

こんにちはDty。私はPostgres 9 beta –

答えて

3

私は時々資産パイプラインと私の誤解のために問題があります。だから私はちょうどページのロードが

alert('some-unique-string') 

プッシュ(ユーザーがに得ることができないいくつかのランダムなページ、などの上に置いた)とき、単純な警告に入れて正しくパッケージ化されていることを確認物事を作るために何をすべきかコードをサーバーに送信します。次に、クロムでページを開き、開発ツールを使用して、「スクリプト」タブに移動します。文字列リテラルが縮小されないので、そこから文字列some-unique-stringを検索できます。あなたがそれを見ないなら、何らかの理由であなたのJavaScriptが含まれていないことを知っています。

少なくとも、あなたには出発点が与えられます。

+0

dtyでCedarのRails 3.2を使用していますが、jsは確実にコンパイルされており、 'alert( 'some-unique-string')がソースにあります。しかし、それは実行されていません。これはなぜでしょうか?まさに私がビューファイルでjs関数を定義すると、それはうまく機能します。 –

+0

e、g、

+0

これは2つの問題によるものだと思います。まず、application.js内のスクリプトの順番が、私が開発環境で取り上げなかったエラーを生成していました。第二に、私はマニフェストには含めたくないスクリプトを用意しています。私は特定のページでそれを使用しており、ページの一番下に行く必要があります。私は現在このファイルをベンダー/資産に持っており、デプロイ時にjavascript_include_tagを使用すると、テンプレートエラーが発生します.jsはプリコンパイルされません。このファイルはどこに置かれるべきですか、どのように呼び出すべきですか? –

6

この問題は、アセットパイプラインに関連しています。アセットをコンパイルする必要があります。

config.assets.compress = true 

すなわち

が続いコード再び RAILS_ENV=production bundle exec rake assets:precompile .

プッシュを実行し、それを解決するためのconfig /環境/ production.rbでtrueに ターンconfig.assets.compress、するには。

+0

私はすでに 'assets.compress = true'を私の設定で持っています。 Herokuはデプロイ時にプリコンパイルされているようです。少なくとも、その旨のログメッセージがあります。私はあなたの 'bundle exec'の提案を試してみて、それがどうなるか見てみましょう。 –

+0

shamithに感謝しますが、これはうまくいきませんでした –

+0

それを参照してくださいhttp://stackoverflow.com/questions/7294479/assets-pipeline-when-updating-to-rails-3-1-on-heroku –

関連する問題