是否必须提到加载jQuery的协议?

时间:2015-12-29 14:03:52

标签: javascript jquery html browser

代码下方

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">
</script>
<script type="text/javascript">
    console.log(jQuery);
</script>

src修改为"http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"(远程文件)或"../js/jquery.min.js"(本地文件)之后浏览器正常工作

否则,开发者控制台会提供Reference error: jQuery is not defined

我想用远程库测试代码,但不是本地

我如何理解这个问题?

3 个答案:

答案 0 :(得分:2)

离开URL的方案意味着它是方案相对的。

如果HTML文档是通过HTTP加载的,那么JS也是如此。

如果HTML文档是通过HTTPS加载的,那么JS也是如此。

如果HTML文档是通过FILE加载的那么......那将是JS,因为file://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js不存在。

在本地Web服务器上进行本地测试,不要直接从文件系统加载HTML。

答案 1 :(得分:1)

如Mosh Feu所述,如果您在本地运行文件而没有Web服务器,则无法使用协议相对路径来加载jQuery。这是因为它正在尝试查找本地参考:file://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js

好吧,如果你在文件夹/some/where/jQuery.js中本地使用jQuery并且用<script src="//some/where/jQuery.js>

引用它,那么你可以

是的,如果您直接从磁盘运行页面,则必须指定协议,如果您需要来自CDN的jQuery。请参阅http://www.paulirish.com/2010/the-protocol-relative-url/

上的第一条评论

省去一些麻烦,安装本地网络服务器。

答案 2 :(得分:0)

您必须在本地查看文件而不使用Web服务器,这会在未明确指定协议时导致错误的URL。