我使用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()));
};
});
找不到模块parser
的404。它实际上指向谷歌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
我拿到文件了,可能是个bug?
问题不在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>