Search code examples
javascriptruby-on-railsgoogle-cdn

Google CDN Jquery load not working


I currently have an ugly array of separate javascript files in one of my layouts and I'm trying to clean it up using the Google CDN.

Current state (horrible I know):

...css...  
<%= yield :head %>

<%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js" %>
<script type="text/javascript" src="http://cdn.jquerytools.org/1.2.5/all/jquery.tools.min.js"></script>
<%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js" %>
<%= javascript_include_tag "ui/jquery.ui.core", "ui/jquery.effects.core",
   "ui/jquery.effects.highlight", "ui/jquery.ui.widget", "ui/jquery.ui.tabs",
   "ui/jquery.ui.progressbar" %>
<%= javascript_include_tag "jquery.ui.stars.min", "application", "rails" %>

I tried replacing the 2nd from bottom tag (with the long list of files) with:

<%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js" %>

I am getting no luck with that - it seems as if the google file is not there at all (I checked my page source and it is loaded). What am I doing wrong here?


Solution

  • I don't know how to translate it into RAILS but this simple HTML should do the trick.

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        if(typeof jQuery == 'undefined') {
            //<![CDATA[
            document.write("<script src='/includes/jquery-1.4.2.min.js' type='text/javascript'><\/script>");
            //]]>
        }
    </script>
    

    This would assume that your jQuery file is stored on /includes/jquery-1.4.2.min.js.
    On Google's CDN failure, local copy will get fetched.