CDN, Relative URLs and local testing
Of course I use this CDN refs to jquery and jquery-ui for my (new) sites, with fallbacks to local versions:
…
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
<!--//
!window.jQuery &&
document.write(unescape('%3Cscript
src="file:/C:/local/js/jquery.js"%3E%3C/script%3E'))
//-->
</script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>
<script>
<!--//
!window.jQuery.ui &&
document.write(unescape('%3Cscript
src="file:/C:/local/js/jqueryui.js"%3E%3C/script%3E'));
//-->
</script>
Weirdly enough, when I have a local page with these includes it takes a full 15 seconds to load the page. But only in Chrome, in FF it is as fast as when loading only the local JS, like this:
<script src="file:/C:/local/js/jquery.js"></script>
<script src="file:/C:/local/js/jqueryui.js"></script>
This takes less than a second in FF.
Since this happens when I run a standalone HTML, I could imagine that the protocol relative prefix ”//” of the CDN URLs, is expanded to file:// which of course wouldn’t resolve. And indeed prefixing the URLs with http: solves the problem.
I can solve this by simply adding a variable in the templates that generate the refs to the CDN. This will insert “http:” before the URLs when testing locally and nothing when running in production.