Edited at

よく使うアセット関連の設定項目まとめ

More than 1 year has passed since last update.


はじめに

必要になったときにいつも忘れているので、Railsのアセット関連の設定項目をまとめてみました。


public以下のファイルを公開するかどうか

config.serve_static_assets = true # Rails4以前

config.public_file_server.enabled = true # Rails5以降

Rails5から書き方が変わったので、Rails5の移行作業で触った人も多いはず。falseだと、public以下のファイルは公開されず、他の配信用サーバーから配信する必要がある。パフォーマンス面から言えば、静的なファイルはRailsからではなく、CDNなどで配信する方が良い。


assetsをコンパイルするときに、圧縮するかどうか

config.assets.js_compressor = :uglifier

config.assets.css_compressor = :sass

JSとCSSのコンプレッサを指定する。指定がなければ、圧縮しない。コンプレッサを指定したら、対応するgemをインストールする必要がある。


アセットが見つからないとき、コンパイルを実行するかどうか

config.assets.compile = false

trueにすると、アセットが見つからないときに自動でコンパイルを試みてくれる。


プリコンパイルするアセットを設定する

# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.

Rails.application.config.assets.precompile += %w( search.js )

application.js・application.css以外でプリコンパイルしたいJSやCSSファイルがある場合は、追加する。


プリコンパイルを実行するrakeコマンド

$ bundle exec rake assets:precompile

$ bundle exec rake assets:precompile assets:clean

assets:cleanをつけると、古いプリコンパイルされたファイルを削除してくれる。ただし直近3バージョンまでは削除せず、保持しておく模様。プリコンパイルの度に新しいファイル名をつけてくれるので、ブラウザキャッシュのせいで起こる問題を回避できる。