【Rails】マニュフェストファイルについて

はじめに

Railsに出てくるマニュフェストファイルについて調べてみました。

マニュフェストファイルとは?

Railsにおけるマニフェストファイルとは、簡単に言うとCSSをひとまとめにしたapplication.cssファイルとJavaScriptをひとまとめにしたapplication.jsファイルのことです。

  • app/assets/stylesheets/application.css
  • app/assets/javascripts/application.js

普通HTMLでは、そのページで必要となるCSSJavaScriptを読み込む際、headタグ内で読み込みますよね。Railsの場合は下記のように読み込みます。

views/layouts/application.html.erb

<!DOCTYPE html>
<html>
  <head>
    <title>RunteqNormal</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag    'application', media: 'all' %>
    <%= javascript_include_tag 'application' %>
  </head>

CSSはこの部分ですね。

<%= stylesheet_link_tag    'application', media: 'all' %>

これは、app/assets/stylesheets/application.cssファイルを読み込んでくださいということです。 このファイルには、

*= require_self
*= require_tree .

と記述してあり、下記のような意味を持っています。

ソース 意味
require_self 同階層に存在している全てのファイルを読み込む
require_tree 自らのソースを読み込む

他にも、下記のようにCSSを指定して取り込んだり、gemでの設定を取り込んだりすることができます。

@import "top";
@import "bootstrap";
@import "font-awesome-sprockets";
@import "font-awesome";

JavaScriptはこのようになっています。

<%= javascript_include_tag 'application' %>
//= require jquery
//= require jquery_ujs
//= require jquery turbolinks
//= require jquery_tree .

このように、どのファイルを読み込むかのかとりまとめたファイルのことをマニュフェストファイルと呼びます。