LoginSignup
0
0

More than 3 years have passed since last update.

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

Posted at

アセットパイプラインの意味がよくわからなかったため、調べたことを残しておきます。

そもそもの話

そもそもwebブラウザはHTML,CSS,JavaScpirt,WebAssemblyを読み込むことで画面を表示している。(WebAssemblyとは大幅にパフォーマンスが向上する新しいタイプのコード)
その、HTML,CSS,JavaScpirt,WebAssemblyをブラウザが読み込めるようにする仕組みをアセットパープラインという。

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

アセットパイプラインとは、JavaScriptやCSSのアセットを最小化 (minify: スペースや改行を詰めるなど) または圧縮して連結するためのフレームワークです。

自分なりのまとめ
人間が見てわかりやすように配置されているCSSやJavascriptなどの静的ファイルを1つにまとめる機能のこと。
なぜまとめるのか→ファイルへのリクエスト回数を減らして処理を少なくするため。

アセットパイプラインの流れ

  1. 高級言語のプリコンパイル→人間がわかりやすいように書いた言語を機械がわかるように翻訳する
  2. 連結→複数のファイルを1つにまとめる
  3. 圧縮→余分な改行や余白を削除して読み込みスピードをあげる
  4. publicに配置されたファイルを読み取ってブラウザに表示をする

実施方法

  • 開発環境ではアセットパイプラインを通る仕組みが自動化されているため特に行うことはない
  • 本番環境では手動で行う必要がある。
    1. (rails assets:precompile RAILS_ENV=productionコマンドを実行)
    2. config/environments/production.rbconfig.assets.compile = false のfalseをtrueに変える

現在の疑問点

なぜconfig.assets.compile = falseをtrueにするのか?
そもそもconfig.assets.compileってなに?

どうやらconfig.assets.compileは

ファイルがないときにファイルを探して自動コンパイル

をしくてれるらしい。(Rails ドキュメント引用)

説明
「true」の場合は、public/assetsのなかに必要なファイルを見つからなかった時に、app/assetsなどからファイルを探しコンパイル

便利そうには感じるがtrueにしておくとサーバーに負荷がかかるらしい...。
処理速度を早くするためにアセットパイプラインの仕組みを使うのにtrueにして負担かけてもいいものなのか...。
考え出したら止まりません!

以上、アセットパイプラインについて現状わかったことについて記述しました。
まだ細かい部分は理解できていないため勉強していきます!

 参考記事

https://railsdoc.com/page/config_assets_compile
https://developer.mozilla.org/ja/docs/WebAssembly/Concepts
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/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0