Javascript 当通过CDN使用Dojo时,如何加载自定义AMD模块?
我正在使用谷歌的CDN,也试图用他们的加载器加载我自己的AMD模块。我知道我做错了什么,但我被卡住了。有什么想法吗Javascript 当通过CDN使用Dojo时,如何加载自定义AMD模块?,javascript,dojo,amd,Javascript,Dojo,Amd,我正在使用谷歌的CDN,也试图用他们的加载器加载我自己的AMD模块。我知道我做错了什么,但我被卡住了。有什么想法吗 <script src="https://ajax.googleapis.com/ajax/libs/dojo/1.7.0/dojo/dojo.js" type="text/javascript" data-dojo-config="async:true,parseOnLoad:true"></script> <
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.7.0/dojo/dojo.js"
type="text/javascript" data-dojo-config="async:true,parseOnLoad:true"></script>
<script type="text/javascript">
require(["dojo/_base/kernel", "dojo/_base/loader", "dojo/parser"], function(dojo){
dojo.registerModulePath("pgGallery", "http://127.0.0.1:8080/js");
});
require(["pgGallery/Message"], function(m){
m.success("foo");
});
</script>
require([“dojo/_base/kernel”、“dojo/_base/loader”、“dojo/parser”]),函数(dojo){
registerModulePath(“pgGallery”http://127.0.0.1:8080/js");
});
需要([“pgGallery/Message”],功能(m){
m、 成功(“foo”);
});
是模块的位置。我在“将CDN与本地模块一起使用”下找到了解决方法 页面中的示例如下:
<script type="text/javascript">
var dojoConfig = {
async: true,
packages: [
{
name: "my",
location: "/absolute/path/to/local/modules"
}
]
};
</script>
<!-- Bootstrap Dojo From Google's CDN -->
<!-- removing the protocol from src url auto detects if current page is served via http or https and also loads the dojo resources from matching protocol -->
<script
type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js">
</script>
<script type="text/javascript">
require(["my/FooModule"], function(FooModule){
// ...
});
</script>
var dojoConfig={
async:true,
套餐:[
{
姓名:“我的”,
位置:“/absolute/path/to/local/modules”
}
]
};
require([“我的/FooModule”],函数(FooModule){
// ...
});
我正在使用的另一个应该有效的选项是。注意“.js”。不知何故,加载器对这一点的处理方式有所不同
require(["pgGallery/Message.js"], function(m){
m.success("foo");
});
请参阅:
如果moduleId以协议(例如,“http:”)或正斜杠开头,或以“.js”后缀结尾,则假定请求是针对任意JavaScript块,而不是模块
我不知道这是否是最佳实践。这就是我喜欢require.js的原因-它在跨域加载AMD模块方面没有问题。