我正在尝试使用由Dojo加载的使用dojo.require
的Esri ArgGis JavaScript API。我有一个现有的模块AMD/requirejs Typescript应用程序,我需要将此代码集成到。在我最初的TS文件的顶部,我输入几个模块:我该如何解决这个AMD路径冲突?
import tracer = module('../classes/trace');
import pubsub = module('../classes/pubsub');
import masker = module('../classes/masker');
// etc.
这是工作的罚款,但现在,我已经添加了ArcGIS的代码,而不是解决我的应用程序中的相对路径,require.js有拿起从ESRI的网站的baseUrl,并试图加载:
http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/esri/classes/trace.js
// etc.
在404个响应和脚本错误的字符串由此而来。
我该如何解决这个问题?
我试图加载,加载模块的头文件之前设置在我的HTML文件的头部requirejs的baseUrl:
<script src="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3"></script>
<script type="text/javascript" src="/content/client/libs/require.js"></script> <!-- data-main="/content/client/hop/hop.app" -->
<script type="text/ecmascript">
require.config({
baseUrl: "/Content/client/hop/"
});
</script>
<script src="~/Content/client/hop/hop.app.js"></script>
但这种失败,投掷要求没有方法配置一个例外。 (注意:如果我颠倒了html文档头部的顺序,以便arcgis api在加载顺序中最后出现,我得到了相反的问题 - 我的本地文件一切正常,但dojo和映射API失败,因为当他们应该在argis服务器上搜索时,他们正在寻找相对于我的网站的路径)。
谢谢Jeffrey - 这真的很有用。我已经将地图放入iframe中,以便在截止日期前完成,但我会在下周尝试一下,并接受它是否有效。 – JcFx 2013-03-13 18:26:25