jquery CDN的后备无法正常工作

Eri*_*ard 0 javascript jquery html5 fallback cdn

我在测试页面上有以下jQuery CDN后备.我正在使用chrome和IE进行本地测试.CDN未加载.如果我http://在CDN中使用它加载,但如果我删除它只是使用//这对我没有意义.如果脚本没有加载条件语句应该在本地加载,但事实并非如此.如果我更换了

document.write('<script src="/scripts/jquery-2.1.1.min.js"><\/script>')
Run Code Online (Sandbox Code Playgroud)

document.write('undefined')
Run Code Online (Sandbox Code Playgroud)

然后我在大约5秒钟后在页面上得到未定义的单词.我没有正确地打屁股吗?这是我的html页面:

<!DOCTYPE html>
<html>
<head>
    <title>jQuery</title>
</head>
<body>

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<script>
(window.jQuery || document.write('<script src="/scripts/jquery-2.1.1.min.js">
 <\/script>'));
</script>
<script>
  $(document).ready(function() {
    alert( "welcome" );
  });
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Kyl*_*ten 6

您可能正在使用file://协议加载页面.//协议的确切含义是"使用我正在使用的相同协议".如果您正在查看file://C:/Users/Me/test.html,那么您//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js将成为file://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js计算机上不是有效文件路径的URI .如果要在本地进行测试,则需要使用http://链接中的协议或在IIS上托管项目或在框中托管apache.