2016-06-14 2 views
0

テスト環境でWebrickを使用してテストRuby-on-Railsアプリケーションを実行しています。自動エンドツーエンドテストは管理ページにアクセスし、別の管理ページで使用されるJavaScriptファイルを更新します。問題は、2番目の管理ページには更新が表示されず、代わりにJavaScriptファイルの古いコピーが取得されることです。私はファイルシステム上で変更されたファイルを見ることができますが、コマンドラインからcurlを使用しても、私はまだファイルの古いバージョンを取得します。テストは(少なくとも4.1ではなく、Rails 4.0で)動作していました。この問題が発生したことをRails 4.2に更新しようとしているところです。スクロールキャッシュがファイルの変更によって無効にならない

Rails/Sprocketsに、更新されたJavaScriptのキャッシュされた古いコピーを忘れさせるためにできることはありますか?私はそれを更新している時を知っていて、もしそれを選択的に行えなければ、Sprocketのキャッシュ全体をリセットしても大丈夫です。私ができないことは、JavaScriptファイルが更新されるたびにサーバーを再起動することです。

答えて

0

Sprocketsにキャッシュされたコピーを「忘れさせる」ために、私は多くのアプローチを試みましたが、非常に覚えているようでした。私は確固とした設計決定に対して戦っているという感覚を持ち始めました。結局のところ、私はJavaScriptファイルを生成しただけで、スプロケットを避けることになりました。これはファイルのコンパイルと指紋処理を自分で処理し、生成されたファイルのjavascript_include_tagの独自のバージョンを作成することを意味しました。

参考のため、コンパイルおよびフィンガープリントは、実際にはかなり簡単です:

​​

(その後、ちょうど公共/資産へのフィンガープリントされたファイルを書き出します)。

関連する問題