tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

【rails】アセットパイプライン、アセットコンパイルについて

Ruby on RailsではHTML,CSS,Javascript等を別々のファイルに分割してコーディングしやすくしている。しかし実際にクライアント側にデータが送られる際はHTML,CSS,javadcript、画像ファイルは一つのファイルに圧縮されている。この分割しているファイルをまとめる機構がアセットパイプライン、ファイルをまとめる作業をアセットコンパイルという。webブラウザは複数のファイルをまとめる機能は持っていない。

アセットパイプラインを実行する為にはsprocketsというgemが必要。railsのインストール時に自動で入っている。

以下の2つのファイルが大元のapp/views/layouts/application.html.erbで読み込まれている。以下の2つのファイル(マニュフェストファイル:このファイルに従ってファイルを読み込む)に記述してあるrequire_tree .でそのディレクトリにある分割したファイルをすべて読み込んでいる。

app/assets/javascripts/application.js app/assets/stylesheets/application.css

プリコンパイルとは以下の流れのこと 1. 高級言語コンパイル 2. 連結 3. 圧縮 4. publicディレクトリに配置

scssやcoffeescriptCSSJavascriptを書きやすくした言語そのままではコンパイル出来ないのでCSSJavascriptを変換する必要がある。

参考 https://www.transnet.ne.jp/2016/02/28/rails%E5%88%9D%E5%AD%A6%E8%80%85%E3%81%8C%E3%81%A4%E3%81%BE%E3%81%9A%E3%81%8Dcolnr%E3%80%8C%E3%82%A2%E3%82%BB%E3%83%83%E3%83%88%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3/

https://www.casleyconsulting.co.jp/blog/engineer/121/

https://diveintocode.jp/blogs/Technology/AssetPipeline