我想从www上的ad-hoc服务器加载Dojo1.9 amd模块,但我不知道从哪里到运行时(使用url params)。
从本质上讲,我想做相同的事情:
require(['http://www.foo.com/SomeRandomModule'], function( SomeRandomModule ) {
// use SomeRandomModule
});
答案 0 :(得分:1)
可能有一些意想不到的怪癖,我还没有用它来说:
require([ "//host/myext/mod1/mod2.js" ],function(mod2){
// If current webpage is http:// or https:// or file://
// it tries to use the same protocol
});
配置require()
以将来自某个包名称(例如foo
)的所有模块视为来自特定网址。从您的首页开始,例如:
<script src="dojo/dojo.js"
data-dojo-config="packages:[{name:'myext',location:'//host/js/myext'}], async: 1, >
</script>
这可以让您大大改善您的第一个示例:
require([ "myext/mod1/mod2" ],function(mod2){
});
如果您使用的是Dojo Bootstrap安装,则可以避免触摸data-dojo-config
,而是将其放在run.js
启动文件中:
require({
baseUrl: '',
packages: [
'dojo',
'dijit',
'dojox',
'myapp',
{ name: 'myext', location: '//host/js/myext', map: {} }
]
}, [ 'myapp' ]);