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?
//= require_self. It loads the file itself, to define the order that the files are loaded.
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.
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.
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."
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With