60

In rails3.1 application.css we could see

/*
 *= require_self
 *= require_tree .
*/

I know that require_tree . is just telling the system to bundle together everything from the stylesheets folder into a single file.

But what does require_self tells?

RudyOnRails
  • 1,819
  • 3
  • 17
  • 26
kriysna
  • 6,118
  • 7
  • 30
  • 30

3 Answers3

65

From http://guides.rubyonrails.org/asset_pipeline.html:

/* ...
*= require_self
*= require_tree .
*/

"In this example require_self is used. This will put the CSS contained within the file (if any) at the top of any other CSS in this file unless require_self is specified after another require directive."

eronisko
  • 1,862
  • 1
  • 15
  • 14
shedd
  • 4,198
  • 4
  • 33
  • 42
21

Shedd's answer used to be correct but now the meaning has changed ever so slightly;

Again, from http://guides.rubyonrails.org/asset_pipeline.html (bolding my own):

In this example require_self is used. This puts the CSS contained within the file (if any) at the precise location of the require_self call. If require_self is called more than once, only the last call is respected.

So you can have require_self at any point, and any CSS you have in the file will be injected into the point you wrote require_self

Toby
  • 8,483
  • 13
  • 45
  • 68
13
//= require_self

It loads the file itself, to define the order that the files are loaded.

Kick Buttowski
  • 6,709
  • 13
  • 37
  • 58
rafamvc
  • 8,227
  • 6
  • 31
  • 34