jQuery CDN未在LocalHost上加载

时间:2013-04-03 18:25:29

标签: javascript jquery cdn

我从以下地址加载了jquery cdn:

<head>
.
.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>

然后在我的剧本中我有我的剧本来源

<body>
.
.<script src="app.js"></script>
</body>

这一切都在本地,但是当我在浏览器中查看时,我在控制台中不断收到以下错误:

GET file://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
Uncaught ReferenceError: $ is not defined 

我认为这是说jQuery函数“$ ...”是未定义的,因为CDN的GET中有错误,为什么会在本地发生?

3 个答案:

答案 0 :(得分:14)

您实际上并未在localhost(http://localhost)上运行,而是在本地文件系统(file:///path/to/whatever.html)上运行。该协议使用//链接复制到file://ajax.googleapis.com,当然不存在。

您应该在计算机上设置服务器,以便使用http协议访问实际 localhost。它还有其它好处,因为当页面直接从文件系统加载时,浏览器在其他方面也会有所不同。

答案 1 :(得分:2)

您是否尝试删除“src”属性开头的“//”而不是“http://”?由于这些斜杠,它可能会将“localhost”附加到URL的开头。

答案 2 :(得分:0)

我在How to use Bootstrap CDN?回答了类似的问题,正如Juhana所说,问题是加载jQuery时缺少的协议。

使用http或https时,无协议CDN可以正常工作,因为浏览器会将前缀添加到jQuery URL中。

但是当使用本地html文件时,缺少的协议将是file:,浏览器将无法在file://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js无法加载jQuery的情况下找到jQuery。在这种情况下,您必须手动添加协议,如果您最终在线使用该页面,这是一个小问题,因为无协议的URL更好,缓存更友好(http://encosia.com/cripple-the-google-cdns-caching-with-a-single-character/)。