2011-11-19 10 views
6

開発サーバーを再起動してもjs.erbファイルが再生成されません。サーバーを再起動するたびにアセットパイプラインですべてのjavascriptアセットを再生成する方法がありますか?アセットパイプラインの強制js.erb再コンパイル

実際の.js.erbソースファイルを変更した場合、再コンパイルは完了しますが、コードはデータベースから取得され、サーバーの再起動時に変更される可能性のあるシードされたデータが読み込まれます。

答えて

10

ここでは電話をかけていますが、この問題が全面的に発生しており、本当に迷惑をかけられています。少し掘りました。ここに私のソリューションです:

サーバーを再起動するには

、SCSSおよびその他のキャッシュされた資産を吹き飛ばす、および再コンパイルを強制しますrm -rf tmp/cache/*

Rakeを使用してサーバーを再起動する場合は、代わりにrake assets:cleanを実行できます。

はもちろん、やってこれは、私はあなたが私の質問を誤解していると思う

+0

ニース!これは機能します。 – spike

1

アセットパイプライン内で実行されるルビは、サーバが起動する前に実行されているものと考えてください。これは、アセットのプリコンパイルステップでプロダクションで実際に起こるものです(そして、記載されている)。この場合、そのコードをコントローラとapp/viewsディレクトリ(html.erb/js.erb)にリファクタリングして、すべてのリクエストでコードが実行されるようにします。

+0

...ビットにより、サーバの再起動が遅くなりますが、この主要な痛みのポイントを除去するために、それ価値があるかもしれません。 JSが依存しているシードデータが変更されると、サーバーを再起動します(country => stateマッピングのような静的なものです)。私の問題は、サーバーが再起動しても、* JSが再生成されないということです。私は実際のソースファイルを変更しなければなりません(それは、何らかのハッシングを行っていると推測しています)。 – spike

+0

ええ - 私は今それをgrok。開発環境でconfig.assets.debugがtrueに設定されていますか?そうでないと仮定すると、https://github.com/wavii/rails-dev-tweaksでレールが何をしているのかを調べることができるかもしれませんが、あなたの問題を解決するとは思えません。それはあまり頻繁に資産をコンパイルするのに向いているからです。 –

+0

yea 'config.assets.debug'が設定されています。リソースのおかげで、もっと掘り下げようよ。 – spike

関連する問題