0
0

【Rails】「アセットパイプライン」とは

Posted at

はじめに

改めてアセットパイプラインについてまとめてみました

目次

1.アセットパイプラインについて
2.主な機能

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

アセットパイプラインは、Ruby on Railsアプリケーションで使われる便利な仕組みです。これは、ウェブサイトやウェブアプリで使うJavaScriptやCSSなどのファイルを、効率よく扱えるようにしてれくます。

例えば、アセットパイプラインを使うと、複数のJavaScriptやCSSファイルを1つにまとめて、ブラウザが1回のリクエストで取得できるようにできます。それに加えて、ファイルのサイズを小さくするための工夫もしてくれます。つまり、使っているJavaScriptやCSSが少ないリクエストで、早くページが表示されるようになるんです。

2. 主な機能

具体例を交えて4つ紹介します。

SHA256フィンガープリントを挿入する機能:

この機能は、ファイル名にSHA256フィンガープリントを含めることで、ブラウザとCDNによってファイルがキャッシュされるようにします。例えば、application.cssというファイルがある場合、アセットパイプラインはそれをapplication-1a2b3c4d5e.cssのように変更します。ファイルの内容が変更されると、フィンガープリントも変わり、ブラウザが古いバージョンのファイルをキャッシュしないようになります。

import mapsを使う機能:

この機能は、JavaScriptファイルの配信にimport mapsを使用します。これにより、ESモジュールを利用するアプリケーションを簡単に構築できます。例えば、application.jsに以下のように記述します。

application.js
import { myFunction } from './myModule.js';

アセットパイプラインは、これを適切な形式に変換してブラウザに提供します。

CSSファイルの連結と最小化または圧縮する機能:

この機能は、すべてのCSSファイルを1つのファイルに連結し、最小化または圧縮します。例えば、application.cssやstyle.cssなどの複数のCSSファイルがある場合、アセットパイプラインはこれらを1つのファイルにまとめて最適化します。

css
/* application.css */
body {
    background-color: #fff;
}

/* style.css */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

これらのCSSファイルは、1つのapplication.cssにまとめられ、不要な空白やコメントが削除されます。

CSSの上位言語によるアセットコーディングを可能にする機能:

アセットパイプラインは、SassやSCSSなどのCSSの上位言語を使用することも可能です。これにより、より効率的にスタイルシートを管理できます。例えば、application.scssに以下のように記述します。

application.scss
/* application.scss */
$primary-color: #007bff;

.button {
    background-color: $primary-color;
    color: #fff;
    padding: 10px 20px;
    border: none;
}

このように、変数やネストなどを使用してスタイルを定義できます。

これらの機能によって、開発者は効率的にアプリケーションの静的ファイルを管理し、最適化することができます。

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