2013-04-13 66 views
0

为了将dojo 1.8与1.6配合使用,我在教程Defining Modules的子标题“Using portable模块”。“便携式模块”适用于src版本,但不适用于预建版本

我一直在使用它与dojo源代码版本“dojo-release-1.8.3-src.zip”,它工作得很好,但是当我切换到预建版本时,“dojo -release-1.8.3.zip”,它抛出404错误寻找的依赖关系:

GET http://localhost:8080/sb/javascript/lib/dojo-release-1.8.3/dojo/parser.js  200 OK 
GET http://localhost:8080/sb/javascript/lib/dojo-build-1.6.1/dojo/_base/url.js 404 Not Found 
"NetworkError: 404 Not Found - http://localhost:8080/sb/javascript/lib/dojo-build-1.6.1/dojo/_base/url.js" 

GET http://localhost:8080/sb/javascript/lib/dojo-release-1.8.3/dojo/request.js 200 OK 
GET http://localhost:8080/sb/javascript/lib/dojo-build-1.6.1/dojo/request/default.js  404 Not Found 
"NetworkError: 404 Not Found - http://localhost:8080/sb/javascript/lib/dojo-build-1.6.1/dojo/request/default.js" 

从很明显,它是找错了地方的依赖文件控制台(在寻找“道场 - 建造 - 1.6 .1'而不是'dojo-release-1.8.3')。我想知道的是为什么?我所做的只是交换预编译版本的源代码版本。

这里是我的配置:

<script> 
    var map18 = {dojo: "dojo18", dijit: "dijit18", dojox: "dojo18"}; 
    var dojoConfig = { 
     async: false, 
     parseOnLoad: true, // in 1.8 they suggest setting to false and manually parsing when needed, but we're not set up that way at the moment 
     packages: [ 
      {name: "dgrid", location: "../../dgrid/dgrid", packageMap: map18}, 
      {name: "xstyle", location: "../../dgrid/xstyle", packageMap: map18}, 
      {name: "put-selector", location: "../../dgrid/put-selector", packageMap: map18}, 
      {name: "modules", location: "../../modules", packageMap: map18}, 
      {name: "page", location: "../../page"}, 
      {name: "dojoc", location: "../../dojoc"}, 
      {name: "dojo18", location: "../../dojo-release-1.8.3/dojo", packageMap: map18}, 
      {name: "dijit18", location: "../../dojo-release-1.8.3/dijit", packageMap: map18}, 
      {name: "dojox18", location: "../../dojo-release-1.8.3/dojox", packageMap: map18}, 
      {name: "dojo", location: "../../dojo-build-1.6.1/dojo", main: "dojo"}, 
      {name: "dijit", location: "../../dojo-build-1.6.1/dijit"}, 
      {name: "dojox", location: "../../dojo-build-1.6.1/dojox"} 
     ], 
    }; 
</script> 

回答

0

我试过类似的东西(同时使用1.8和1.6源),并得到了不同的错误。我知道这不是问题的答案,但我会将其粘贴到这里以防止它找到答案。

这是我的测试页面:

<script> 
var location18 = "/dojo18"; 
var location16 = "/dojo16"; 
var map16 = { dojo: "dojo16", dijit: "dijit16", dojox: "dojox16" }, 
    dojoConfig = { 
     packages: [ 
      { name: "dojo16", location: location16 + "/dojo", packageMap: map16 }, 
      { name: "dijit16", location: location16 + "/dijit", packageMap: map16 }, 
      { name: "dojox16", location: location16 + "/dojox", packageMap: map16 }, 
      { name: "dojo", location: location18 + "/dojo" }, 
      { name: "dijit", location: location18 + "/dijit" }, 
      { name: "dojox", location: location18 + "/dojox" } 
     ] 
    }; 
</script> 
<script src="/dojo18/dojo/dojo.js"></script> 
<script> 
require(["dojo/date"], function (date) { 
    console.log("date18", date); 
}); 
</script> 
<script> 
require(["dojo16/date"], function (date) { 
    console.log("date16", date); 
}); 
</script> 

而我得到的错误似乎与装载两个日期模块。不知道Dojo是否可以单独处理它们,但我没有设法做到这一点。

Error

+0

你也许可以用'dojo16.date'访问的dojo16日期模块。我不知道你是否可以使用新的'require'功能访问1.6模块,因为它们是AMD。 – jumpnett

+0

另外我看到你加载dojo 1.8(''),但不是dojo 1.6。 – jumpnett

+0

是的,我不确定我是否应该导入这两个。你的链接 - http://dojotoolkit.org/documentation/tutorials/1.7/modules/ - 没有提到脚本导入,我想我有重复的'define'函数的麻烦。 –

相关问题