Railsのアセットパイプライン

メモ

  • アセットパイプラインの主な機能
    • フィンガープリント
      • キャッシュ破棄
    • importmapでjavascriptを配信する
      • import mapはjavascriptのみに対応していて、cssには対応していない。
      • importmap-rails gemによって処理
      • import mapはライブラリのアドレスのエイリアス
      • headにjavascript_import_tagsを埋め込んで使用
      • npmパッケージをjavascriptCDN経由で利用できる
    • cssを1つのファイルに連結
    • cssの上位言語によるアセットコーディング(scss?)

Sprockets

  • 基本、Railsアプリはpublic以下にアセットを保存することで、そのまま静的リソースとして利用できる。
  • でも、フィンガープリントの追加やアセットの圧縮を手動でやるのは大変だよね。
  • sprocketsを使えば、上述したようなものをいい感じに処理して、public/assets以下に配置してくれる。
  • manifest.jsは、その前処理に必要な定義を書くことができるファイル。
    • プロコンパイルする対象を定義できる。
    • 通常はapplicaion.cssと画像アセット
  • 本番環境ではpublic/assetsにプロコンパイルされて処理され、静的アセットとして配信される。
  • app/assetsにあるファイルそののもはproductionで直接配信はされない。