LoginSignup
10
4

More than 5 years have passed since last update.

Rails5の開発環境でJSの重いページを開くのがとても遅い

Last updated at Posted at 2017-06-23

RailsでJavaScriptをガンガン書く

Railsでは、標準でAsset Pipelineという機能があり、cssやJavaScript(coffeeScript)のファイルを動的に生成してデプロイしてくれるようになっている。ファイル名にハッシュをつけたりしてくれるので、デバッグ時にブラウザキャッシュが残ってJSやcssの更新が反映されないというありがちなトラブルを事前に避けることができる。
その一方で、ViewにJavaScript(coffeeScript)をガンガン増やしていくと、rails sでのローカルデバッグ時に、そのページを開くのがとてつもなく遅くなってしまう。開発環境(一般的にはdevelopmentステージ)では、ページを開くたびにcoffeeScriptのコンパイルやデプロイが走るようになっているためである。
最初、そんなものなのかと思って遅いのを我慢していたが、我慢の限界が来たので調べてみたところ解決方法らしきものがわかった。

Assetsをプリコンパイル対象に入れる

config/initializers/assets.rbに、プリコンパイルするAssetsを定義しておく。

config/initializers/assets.rb`
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/environments/development.rb
  config.assets.debug = true

これをfalseに設定する

以上で高速で動作するようになった。
なお、上記設定の場合JSを更新するたびにプリコンパイルをやり直す必要がある。

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4