質問

現時点では、私の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

そして、この関連する質問

Rails 3.1 Asset PipelineでJQueryで適切に作業する方法は?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top