Total Pageviews

Friday 13 June 2014

一个可以加快css/js文件的加载的rubyonrails插件:BUNDLE-FU

WHY BUNDLE-FU IS SPECIAL


Web 2.0 sites have lots of tiny javascript/css files, which causes one extra round trip per file to the server and back! This is bad! Bundle-fu throws it all up into a big package and sends it out all at once.
Bundle-fu can speed your load time up around 50%.
It:
  • Does not require a separate config file
  • Automatically regenerates the bundle if you modify an included file, or change the include order.
  • Is easily bypassed by passing "?bundle_fu=false" into your page (including assets separately vs bundled). It does not affect other users of your site, and stays bypassed for the your session only. Bundle-fu makes debugging fun!
  • Is optimized for production mode (only generates the bundle file once when the server is first started).
  • Puts the bundles in javascripts/cache and stylesheets/cache, so it's easy to ignore with subversion.
  • Rewrites relative URLs in your CSS files, so you'll never have broken images.
  • Minimizes your javascripts by default using the Ruby Version of JSMin. Optionally, if you install PackR, it will automatically use that instead.
  • No additional requests on your rails application - bundled files are served as static files.
  • Supports multiple combinations of JS/CSS, using the :name parameter

USAGE / INSTALLATION


Step 1

Install this plugin
git clone git://github.com/timcharper/bundle-fu.git vendor/plugins/bundle-fu && rm -rf vendor/plugins/bundle-fu/.git

Step 2

Put the following around your stylesheets/javascripts (note it works with any method of including assets!):
  <% bundle do %>
    ...
    <%= javascript_include_tag "prototype" %>
    <%= stylesheet_link_tag "basic.css" %>
    <%= calendar_date_select_includes "red" %>
    <script src="javascripts/application.js" type="text/javascript"></script>
    ...
  <% end %>
That's it!

HELP



OTHER RUBY ON RAILS ASSET BUNDLERS


Bundle-fu isn't the only Ruby on Rails plug-in that will bundle assets. It simply has a new approach to doing so.
Other asset bundling solutions:
  • AssetPackager - Requires a separate config file to work. Option to compress javascript.
  • Rails 2.0 - Very clean implementation. Doesn't rewrite relative CSS urls. Bundles only in production mode. Doesn't bundle includes from asset include helpers from 3rd party plug-ins. No bypass mechanism (though it could be implemented easily). No js minification. 
from  https://code.google.com/p/bundle-fu/