RailsでJavaScriptをガンガン書く
Railsでは、標準でAsset Pipelineという機能があり、cssやJavaScript(coffeeScript)のファイルを動的に生成してデプロイしてくれるようになっている。ファイル名にハッシュをつけたりしてくれるので、デバッグ時にブラウザキャッシュが残ってJSやcssの更新が反映されないというありがちなトラブルを事前に避けることができる。
その一方で、ViewにJavaScript(coffeeScript)をガンガン増やしていくと、rails s
でのローカルデバッグ時に、そのページを開くのがとてつもなく遅くなってしまう。開発環境(一般的にはdevelopmentステージ)では、ページを開くたびにcoffeeScriptのコンパイルやデプロイが走るようになっているためである。
最初、そんなものなのかと思って遅いのを我慢していたが、我慢の限界が来たので調べてみたところ解決方法らしきものがわかった。
Assetsをプリコンパイル対象に入れる
config/initializers/assets.rb
に、プリコンパイルするAssetsを定義しておく。
Rails.application.config.assets.precompile += %w( search.js search.scss )
※search.js search.scssはAssetsの例。
Assetsをプリコンパイルする
rake assets:precompile
Assetsのデバッグモードを解除する
config/environments/development.rb
というファイルにconfig.assets.debug
という設定がある。標準ではtrue
に設定されている。
config.assets.debug = true
これをfalse
に設定する
以上で高速で動作するようになった。
なお、上記設定の場合JSを更新するたびにプリコンパイルをやり直す必要がある。