現場Railsの輪読会でアセットパイプラインに関して学んだときに「静的アセット」と「動的なもの」が理解できていなかったのでそれを学習したときのメモ。

静的アセットとそれ以外(動的なもの)とは何か

静的アセットとは?

リクエストのたびに生成・実行しなくてよいもの。リクエストによって表示する内容が変わらないもの。画像, CSS, JS。

JSは静的アセットなのか

ブラウザからサーバーにリクエストが来たタイミングで実行されるもの(プログラム)ではないから。

静的アセットは事前に準備(プリコンパイル)して配信することでアプリケーションの高速化が図れる。

動的なものとは?

静的アセット以外のもの。静的の対義語。リクエストのたびにプログラムが計算して結果を返すもの。 Railsではコントローラのアクションがそれにあたる。

HTMLは動的??

HTMLは静的アセットではないのかと思いましたが、Railsにおいてはslim, erbなどのテンプレートエンジンを介して生成され、リクエストによって表示内容が変化するため、動的であるということになります。 逆に、publicフォルダ以下に配置される404エラーのhtmlは静的なものといえる。