読者です 読者をやめる 読者になる 読者になる

Rails tutorial 5章

Rails Railsチュートリアル プログラミング

学習したこと

  • Asset Pipeline
  • pathとurl

Asset Pipeline

アセットパイプラインがアセットを連結、圧縮することでブラウザがWebページをレンダリングするためのリクエスト数を減らすことができる。Webブラウザが同時に処理できるリクエスト数には限りがあるため、同時リクエスト数を減らすとで読み込みを高速にできる。

Asset Pipelineの機能

  • アセットの連結
    • 複数のCSSファイル、JavaScriptファイルをそれぞれ一つのファイルに連結する。
    • ファイルのグループ化はカスタマイズ可能。
  • アセットの縮小・圧縮
    • ファイル内のコメントと空行を取り除く。
  • 高水準言語のコーディングを可能にする
    • 高水準言語をコンパイルし、実際に使用されるアセットにプリコンパイルする。
    • SassとCoffeScriptとERBがデフォルトで使える。

Asset Pipelineの肝

Asset Pipeline理解の肝は以下の3点。

アセットディレクト

Rails 3.0以前のバージョンでは、静的ファイルはpublic/以下の次のディレクトリに置かれていた。

  • public/stylesheets
  • public/javascripts
  • public/images

Rails3.1以降では、静的ファイルを目的別に分類する、標準的な3つのディレクトリが使用されるようになりました。最新のRailsでも同様です。

  • app/assets
    • 現在のアプリケーション固有のアセット
  • lib/assets
    • 開発チームによって作成されたライブラリ用のアセット
  • vendor/assets

これらのディレクトリにはstylesheets, javascripts, imagesのサブディレクトリがある。

マニフェストファイル

マニュフェストファイルは、読み込むアセットをまとめる。(実際にまとめるのはSprockets gemが行う)

プリプロセッサエンジン

プリプロセッサエンジンは、アセットをディレクトリに配置してまとめた後、Railsはさまざまなプリプロセッサエンジンを介してそれらを実行し、ブラウザに配信できるようにそれらをマニフェストファイルを用いて結合し、サイトテンプレート用に準備する。

参考

pathとurl

pathは、ルートURL以下の文字列を返し、urlは完全なURLの文字列を返す。

HTTP標準では技術的にリダイレクト後に完全なURLが要求されるためリダイレクトの場合のみ_urlを使用する。