【问题标题】:jQuery CDN Fallback Doesn't WorkjQuery CDN 回退不起作用
【发布时间】:2015-03-26 08:47:01
【问题描述】:

我正在使用这个问题的第二个答案Best way to use Google's hosted jQuery, but fall back to my hosted library on Google fail的解决方案

该解决方案表示使用以下代码提供 jQuery 的本地副本,以防 Google 的 CDN 无法正常工作:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>if (!window.jQuery) { document.write('<script src="/path/jquery.1.11.1.min.js"><\/script>'); }
</script>

我已经实现了这段代码并在我安装了 IIS 的本地机器上运行它。只要我有互联网连接,它就可以正常工作。如果我禁用我的互联网连接,它不会退回到我的本地 jQuery 副本并且 Web 应用程序会中断(即功能丢失)。

是否有新的方法来做回退或者我的测试方法有缺陷?

【问题讨论】:

  • 它根本没有注入回退脚本吗?如果您添加“调试器;” window.jQuery 检查后是否命中?
  • 您本地的 jQuery 副本与 CDN 副本的版本相同吗?控制台中的错误是什么?如果没有加载 jQuery,它应该是类似于 $ is undefined 的内容。
  • 你确定你的本地路径正确吗?
  • 我的本地副本是同一个版本。除了我的 jQuery 文件的名称是 jquery.1.11.1.min.js 而不仅仅是 jquery.min.js
  • @A.Wolff 不,我使用的是 1.11.1。我刚刚更新了我的问题。

标签: jquery cdn fallback google-cdn


【解决方案1】:

您甚至可以创建一个script 元素并将其添加到您的头部或身体顶部,像这样

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>

         <script>
            if(!window.jQuery){
              var script = document.createElement('script');
              script.src = 'jquery-1.11.2.min.js';
              document.head.appendChild(script);
            }    
         </script>

我离线和在线都试过了,效果很好:)

【讨论】: