Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does require_self mean?

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?

like image 796
kriysna Avatar asked Jun 20 '11 05:06

kriysna


People also ask

What is Require_self?

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

How do you Precompile an asset?

To compile your assets locally, run the assets:precompile task locally on your app. Make sure to use the production environment so that the production version of your assets are generated. A public/assets directory will be created. Inside this directory you'll find a manifest.

What are assets in rails?

Generally asset is anything that browser loads after it gets the HTML page. Meaning javascript, css and any images. But as you pointed out there are two different image types in a rails project.


2 Answers

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."

like image 188
shedd Avatar answered Oct 02 '22 01:10

shedd


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

like image 25
Toby Avatar answered Oct 02 '22 02:10

Toby