Javascript 无法加载dojo.js

Javascript 无法加载dojo.js,javascript,dojo,Javascript,Dojo,正如他们在教程中所说,在我尝试动手操作时,我尝试在浏览器中运行(打开)以下html代码,但我的浏览器无法加载dojo.js 在进行故障排除时,我发现源URL转换如下: file://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Tutori

正如他们在教程中所说,在我尝试动手操作时,我尝试在浏览器中运行(打开)以下html代码,但我的浏览器无法加载dojo.js

在进行故障排除时,我发现源URL转换如下:

file://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Tutorial: Hello Dojo!</title>
</head>
<body>
    <h1 id="greeting">Hello</h1>
    <!-- load Dojo -->
    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
            data-dojo-config="async: true"></script>

    <script>
        require([
            'dojo/dom',
            'dojo/dom-construct'
        ], function (dom, domConstruct) {
            var greetingNode = dom.byId('greeting');
            domConstruct.place('<em> Dojo!</em>', greetingNode);
        });
    </script>
</body>
</html>

教程:你好,Dojo!
你好
要求([
“dojo/dom”,
“dojo/dom构造”
],函数(dom,domConstruct){
var greetingNode=dom.byId('greeting');
place('Dojo!',greetingNode);
});

您需要添加http作为dojo.js文件源的协议

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
            data-dojo-config="async: true"></script>

另外,最佳做法是将库文件添加到head标记中,而不是body标记中

<head>
    <meta charset="utf-8">
    <title>Tutorial: Hello Dojo!</title>

    <!-- load Dojo -->
    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
            data-dojo-config="async: true"></script>
</head>

教程:你好,Dojo!

使用真正的Web服务器,而不是从文件系统浏览


Frank的观点是正确的,即向URL添加显式协议将解决此特定问题,但无论如何,您都不可避免地会遇到其他问题,例如XHR被
文件锁定://
协议。如果在提供http或https的真实Web服务器上进行测试,您最初使用的协议相关URL将正常工作。

您是否尝试过将
src=“//ajax.googleapis…”
更改为
src="http://ajax.googleapis...
感谢Frank现在开始工作的建议…正文末尾的脚本是一种常见的最佳做法,因为较旧的浏览器特别限制了并发脚本下载的数量,这可能会减慢加载其他资源(样式、图像等)的速度,否则这些资源可能会首先并行加载。同时,通常,
src=“/…”
是一个协议相关URL,因此如果正在查看的网页是
http
,或者
https
如果是
https
,它将加载
http
,这很好,但是如果在这种情况下使用
file://
,这是真正的问题,即使修复了,也会导致其他问题。就像@KenFranqueiro所说的,脚本通常放在页面的底部,甚至是库。另外,某些浏览器限制只能同时从同一主机下载2个资源。请在此处阅读更多信息: