# jquery-rails-cdn Add CDN support to [jquery-rails](https://github.com/rails/jquery-rails). Serving jQuery from a publicly available [CDN](http://en.wikipedia.org/wiki/Content_Delivery_Network) has clear benefits: * **Speed**: Users will be able to download jQuery from the closest physical location. * **Caching**: CDN is used so widely that potentially your users may not need to download jQuery at all. * **Parallelism**: Browsers have a limitation on how many connections can be made to a single host. Using CDN for jQuery offloads a big one. On top of that, if you're using asset pipeline, you may have noticed that the major chunks of the code in `application.js` is jQuery. Implications of externalizing jQuery from `application.js` are: * Updating your js code won't evict the entire cache in browsers - your code changes more often than jQuery upgrades, right? * `rake assets:precompile` takes less time and less peak memory usage. This gem adds the following features: * Supports multiple CDN. (Google, Microsoft and jquery.com) * jQuery version is automatically detected via jquery-rails. * Automatically fallback to jquery-rails' bundled jquery when: * You're on a development environment, so that you can work offline. * The CDN is down or unavailable. ## Installation Add this line to your application's Gemfile: ```ruby gem 'jquery-rails-cdn' ``` ## Usage This gem adds two methods `jquery_include_tag` and `jquery_url` to generate a script tag to the jQuery on a CDN of your preference. If you're using asset pipeline with Rails 3.1+, first remove '//= require jquery' from `application.js`. Then in layout: ```ruby = jquery_include_tag :google = javascript_include_tag 'application' ``` Note that valid CDN symbols are `:google`, `:google_ssl`, `:microsoft` and `:jquery`. It will generate the following on production: ```html ``` on development: ```html ``` If you want to check the production URL, you can pass `:force => true` as an option. ```ruby jquery_include_tag :google, :force => true ```