Resource Pipeline in Ruby on Rails programs


Comprehend the fundamentals of Resource Pipeline and just how will it assist in Rails programs.

What’s Resource Pipeline?

Resource Pipeline is among the additional features that arrived with Rails 3.1. It is built to clean-up and optimize static assets like javascripts, stylesheets and pictures, making them top class people of Rails application instead of being left into public folder with all of other things.

Just before Rails 3.1, it was accomplished by utilizing tools like Jammit and Sprockets.

Why Resource Pipeline?

The greatest advantage is much better response occasions and therefore better performance from the application. Here are a few advantages:

1.It cuts down on the amount of http demands (to fetch css and js files) for everyone one page, which reduces page load time drastically.

2.Browsers possess a limit on the amount of demands that they’ll make in parallel to some given server, so reducing the amount of http demands also enables browser to fetch assets in parallel, therefore making the page load faster.

3.It prevents the issues with a few browsers that have limit on the amount of css/js files it’ll render, as well as on the amount of lines in every file.

4.It causes it to be super easy to cache static assets.

5.It clears up an excessive amount of junk data in public places folder and makes css, js and pictures top class people from the application.


Let us take a look in the options that come with resource pipeline.


Resource Pipeline introduced a brand new concept known as “pre-processors” for static assets. It allows us as designers to create modular and cleaner js and css code using high-level languages, that are pre-put together to js and css. Default pre-processor for css is -SASS” as well as for js is “Coffee Script”. All that you should make the most of that’s append b .scss extension towards the css files and .coffee extension to js files. Additionally, it enables chaining multiple pre-processors, and you may use Ruby code inside the css and js files, simply by adding .erb processor.


After pre-processing, assets are concatenated into one master apply for css and something for javascript, known as manifest files. e.g.: The manifest file application.css may be like this:

/* *= require_self *= require theme *= require_tree */

This concatenates items in this file and all sorts of other css files in current directory recursively right into a single file. This pre-put together file is held in public/assets folder. All we must do is include this file into our layout. Exactly the same is accomplished for js files also.

Rather than needing tree, files could be loaded inside a specific order by indicating the file title like require theme in example above. Rails will search for these files within the following pathways: application/assets – For application specific assets

lib/assets – For assets that are or could be shared across programs vendor/assets – For 3rd party assets like js/css plug ins

Additional load pathways can be included to config.assets.pathways in application.rb

Automatically Rails provides just one manifest apply for each css and js. But, we are able to have several manifest files within our application. For instance, if admin or blog section includes a different layout and designs, it may be defined in new manifest file admin.css or blog.css, and require related css files inside them. Make sure to add individuals towards the config.assets.precompile list in conditions/production.rb file.

Minification and Compression

After concatenation, the files are minified to lower their size. For css, what this means is elimination of comments and whitened spaces. For javascript, this is often more complex like altering varible names to single figures, altering if-else blocks into ternary operators.

After minification, Rails card inserts a MD5 fingerprint into each filename, therefore the filename will end up determined by its contents and will not change until its content changes. So HTTP headers could be set to cache the file having a far future expiry date, and therefore the browsers will request/load this file on the first time the applying is loaded, on all subsequent demands it will likely be selected from the cache. Here’s the way the file could be named: application-908e25f4bf641868d8683022a5b62f54.css

To help lessen the quality, Rails compresses the file by creating gzipped (.gz) form of assets. So, webservers can serve gzipped form of files which is more compact in dimensions and therefore could be sent considerably faster within the network.


Resource pipeline can offer significant enhancements in reaction occasions and gratifaction of Rails applications, and modularize and clean-up assets, so begin using it today. If you’re on older versions of Rails, then don’t be concerned you should use not-official Rails 2 version to make the most of the majority of Resource pipeline features now.

Get a lot of:

To learn more visit:

Leave a comment

Your email address will not be published. Required fields are marked *