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で直接配信はされない。