アセットパイプライン(Asset Pipeline)

アセットパイプラインについて

アセットパイプラインとは

JavaScriptやCSSを結合したり圧縮したりする。また、CoffeeScriptやSass、ERBの言語を使ってJavaScriptやCSSを書くこともできる。

特徴

  • JavaScriptやCSSを結合することによって、ブラウザでのリクエスト回数を削減
  • JavaScriptやCSSを圧縮
  • SassやCoffeeScript、もしくはERBを使って記述可能
  • 「/app/assets/」「/lib/assets/」「/vendor/assets/」のディレクトリ
  • 「/app/assets/YYY/XXX」に置いたファイルは、「http://localhost:3000/assets/XXX」でアクセスが可能
  • /app/assets/」以下のサブディレクトリは、アクセスする際には無視

URLとファイルパス

URLパス
/assets/application.js<ファイル名>app/assets/javascripts/application.js
/assets/models/test.js<ファイル名>app/assets/javascripts/models/test.js.coffee
/assets/style.js<ファイル名>app/assets/stylesheets/style.js
/assets/lib_test.js/lib/assets/lib.js
/assets/vendort.js/vendor/assets/vendort.js

アクセスの流れ

  • ブラウザから「/assets/application.js」にアクセス
    1. app/assets/javascripts/application.js
    2. app/assets/javascripts/application.js.coffeeなど
    3. app/assets/stylesheets/application.jsなど
    4. app/assets/stylesheets/application.js.sassなど
    5. ・・・
  • 対象ファイルが無ければ404

その他

Asset Pipelineのパスの確認法法
Rails.application.config.assets.paths

設定

設定を無効

config.assets.enabled = false

フィンガープリンティング(Fingerprinting)

フィンガープリンティングとは

JavaScriptやCSSファイルのような頻繁に更新されるファイルに、文字列を付与してブラウザのキャッシュなどを対応する。

使い方

global-<ハッシュ>.css

設定

無効にする
config.assets.digest = false