Asset Pipeline JavaScript構造ファイル
-
26-10-2019 - |
質問
現時点では、私のapplication.jsファイルは次のようになります。
//= require_tree ./vendor
//= require_directory ./lib
また、個々のビュー用の個々のJavaScriptファイルもあります。たとえば、Home.js、user.jsなどです。
人々はこれらのファイルをApplication.jsに入れますか?もしそうなら、彼らはどのようにそれらを有効にしますか?私のjavascriptのほとんどは、jquery対応イベントハンドラーから実行されます $(function (){ });
明らかに、これらがすべて同じファイルにある場合、これは機能しません。これらのファイルをすべて同じファイルに入れている場合、これらのファイルをマイニングして、正しい準備完了イベントにアクセスするにはどうすればよいですか?
どんな助けやヒントを高く評価しました。
解決
複数のjQueryドキュメントに対応できるハンドラーを用意しても問題ありません。ただし、ハンドラーを接続しようとする前に、作業する要素が存在することを確認する必要があります。
たとえば、home.jsでは、
if ($("#home_div").length) { // do some stuff on the home page }
これを行うことは、JSを分割するよりも優れており、いくつかのページでいくつかのピースを提供するだけです。コンパイルされたアプローチでは、ユーザーがJSを1回だけダウンロードする必要があるためです。デフォルトのRails 3.1構成は、生産中のすべてのJSを監督して連結する必要があると思いますが、DEVではそうではありません。手動で有効にしたい場合は、
config.assets.compress = true # compress js into one file
config.assets.js_compressor = :uglifier # minify the JS (need the uglifier gem)
config.assets.digest = true # append hashes to filenames so you can set far-expiry headers for caching
いくつかの情報、ドキュメントの「パイプラインセクションのカスタマイズ」をチェックしてください http://guides.rubyonrails.org/asset_pipeline.html#customizing-the-pipeline
そして、この関連する質問