0

我正在使用 Google CDN 来获取 DOJO。

这是我在我的网站中使用的代码。

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.3/dojo/dojo.js"></script>

当像这样调用我的代码模块'dojo/parser'时

define([
    'dojo/topic',
    'dojo/parser',
    'dijit/registry'
], function (topic, parser) {
    var instance;

    function Test() {
    }
    Test.prototype = {
        init: function () {
            }.bind(this));
        }
    };
    return function getInstance() {
        return (instance = (instance || new Test()));
    };
});

我得到 404 not found for module parser。它实际上指向 Google CDN 的地址:

http://ajax.googleapis.com/ajax/libs/dojo/1.10.3/dojo/dojo.js/parser.js

  • 为什么 CDN 上缺少模块?或者我在我的代码中遗漏了什么?
  • 从哪里或如何加载它的任何想法?

注意:如果我手动将地址更改为

http://ajax.googleapis.com/ajax/libs/dojo/1.10.3/dojo/parser.js

我得到了文件,可能是一个错误?

4

1 回答 1

1

问题不在 URL 内,而可能是由于使用dojoConfig.

这是一个有效的示例(无需额外配置):http ://plnkr.co/edit/xgEi6qAPqKSNrUaoOQch?p=preview

如果您有自定义模块并且正在使用 CDN,您可能应该遵循本文中描述的指南。例如:

<script>
    var dojoConfig = {
        async: true,
        packages: [{
            name: 'custom',
            location: location.pathname.replace(/\/[^/]+$/, '') + '/custom'
        }]
    };
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.3/dojo/dojo.js"></script>
于 2015-02-13T12:14:22.880 回答