現場Railsの輪読会でアセットパイプラインに関して学んだときに「静的アセット」と「動的なもの」が理解できていなかったのでそれを学習したときのメモ。
静的アセットとそれ以外(動的なもの)とは何か
静的アセットとは?
リクエストのたびに生成・実行しなくてよいもの。リクエストによって表示する内容が変わらないもの。画像, CSS, JS。
JSは静的アセットなのか
ブラウザからサーバーにリクエストが来たタイミングで実行されるもの(プログラム)ではないから。
静的アセットは事前に準備(プリコンパイル)して配信することでアプリケーションの高速化が図れる。
動的なものとは?
静的アセット以外のもの。静的の対義語。リクエストのたびにプログラムが計算して結果を返すもの。 Railsではコントローラのアクションがそれにあたる。
HTMLは動的??
HTMLは静的アセットではないのかと思いましたが、Railsにおいてはslim, erbなどのテンプレートエンジンを介して生成され、リクエストによって表示内容が変化するため、動的であるということになります。 逆に、publicフォルダ以下に配置される404エラーのhtmlは静的なものといえる。