针对CDN(内置源代码)运行时dojoconfig.map

针对CDN(内置源代码)运行时dojoconfig.map,dojo,Dojo,我遇到了一个dojo库bug,我正试图在即将发布的版本之前解决这个bug。这个问题被局限于一个文件(dojo/on),我可以通过更改dojo/on来修复这个错误 我试图解决这个问题的方法是使用dojoConfig中的map属性 Dojo配置: dojoConfig = { ... other stuff ... map: { "*": { "dojo/on": "myPackage/patches/on" } } }

我遇到了一个dojo库bug,我正试图在即将发布的版本之前解决这个bug。这个问题被局限于一个文件(
dojo/on
),我可以通过更改
dojo/on
来修复这个错误

我试图解决这个问题的方法是使用
dojoConfig
中的
map
属性

Dojo配置:

dojoConfig = {
    ... other stuff ...
    map: {
        "*": {
            "dojo/on": "myPackage/patches/on"
        }
    }
}
除了修复
dojo/on
中的问题外,我还将require中的相对路径替换为绝对路径。上的新
如下所示:

define(["dojo/has!dom-addeventlistener?:dojo/aspect", "dojo/_base/kernel", "dojo/sniff"], function(aspect, dojo, has){

    "use strict";

    alert("HI From new on - I only work with unbuilt dojo");    // Rest of on is the same.
当我运行dojo源代码时,这非常有效

当我遇到CDN时,它停止工作。据我所知,
myPackage/patches/on
从未加载(firebug net panel&fiddler)。发生的另一件奇怪的事情是,这些请求是向我的服务器发出的:

http://.../patches/dojo-1.9.4/has.js
http://.../patches/dojo-1.9.4/sniff.js
http://.../patches/dojo-1.9.4/_base/kernel.js
结果是页面没有加载,控制台没有显示其他错误


编辑-完整示例页面:

<!DOCTYPE html>
<html >
<head>
    <script>
    dojoConfig = {
        parseOnLoad: true,
        packages: [
            {name: "my", location: "//localhost/dojoSandbox" }
        ],
        map: {
            "*": {
                "dojo/on" : "my/patches/on-dojo-1.9.4"
            }
        }
    }
    </script>

    <!-- Using a CDN doesn't work.  Crap -->
    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/dojo.js"></script>
    <link href="//ajax.googleapis.com/ajax/libs/dojo/1.9.1/dijit/themes/claro/claro.css" rel="stylesheet" type="text/css">

    <!-- Using dojo source works great!
    <script src="//localhost/dojo/dojo.js"></script>
    <link href="//localhost/dijit/themes/claro/claro.css" rel="stylesheet" type="text/css">
    -->

</head>
<body class="claro">
    <div id="hSliderDiv"></div>
    <script>
        require(["dijit/form/HorizontalSlider", "dojo/domReady!"], function(HorizontalSlider){
                new HorizontalSlider({
                    onChange: function(value){
                        console.log(value);
                    }
                }, "hSliderDiv").startup();
        });
    </script>
</body>
</html>

dojoConfig={
parseOnLoad:true,
套餐:[
{name:“我的”,位置://localhost/dojoSandbox}
],
地图:{
"*": {
“dojo/on”:“my/patches/on-dojo-1.9.4”
}
}
}
require([“dijit/form/horizontalsloider”,“dojo/domReady!”],函数(horizontalsloider){
新水平滑块({
onChange:函数(值){
console.log(值);
}
},“hslideriv”).startup();
});
控制台: