我使用dojo框架开发了一个web应用程序。这个应用程序必须由使用file:///协议的浏览器加载(它将成为用于安卓/iPad的Cordova/Phonegap应用程序)。index.html文件如下所示:
头剖面
<script type="text/javascript">
var dojoConfig = {
parseOnLoad: true
}
</script>
<script type="text/javascript" src=""dojo.js"/>
<script type="text/javascript">
dojo.require("dojox.mobile.parser");
dojo.require("dojox.mobile");
</script>车身切片:
<script type="text/javascript">
dojo.require("dojox.mobile.parser");
dojo.require("dojox.mobile");
</script>它摘自IBM课程(移动应用程序开发,第1部分:安卓上的PhoneGap和Dojo)。
所以有两个问题:
1) dojo尝试加载模块,但未能使用file:///协议进行加载。HTTP协议是必需的。
2)在index.html中,我使用web构建器定制的dojo构建。此构建由一个包含我需要的模块的文件组成。但是,这些模块必须是必需的,这使得框架尝试从不存在的文件中加载它们,尽管它们已经加载在大型自定义dojo.js中。
也许有人知道如何解决这两个问题。
发布于 2014-05-28 12:31:08
您在哪个浏览器上测试您的代码?出于安全考虑,Chrome不允许一个Html文件中的多个域。在firefox浏览器上尝试您的代码,它应该提示一个警告并运行代码。还要确保index.html文件位于dojo (dojo )的父目录中。i.e
您的目录结构应该如下所示
--dojo_source/dojo_库
|
X-index.html。
还使用浏览器文件中的文件协议运行代码://
希望这能有所帮助。
另一种选择是安装web服务器。您可以尝试“猫鼬”的web服务器,它非常轻,只有136 web的大小。然后您可以设置它来运行您的dojo代码。我一直在使用web服务器,这对于测试我的代码来说是很棒的。
发布于 2015-02-03 10:35:31
您不能通过文件协议使用dojo,因为AMD引擎延迟通过XHR请求加载依赖项,而XHR请求不会那样工作。
参见:http://www.sitepen.com/blog/2014/07/30/dojo-faq-why-do-i-need-to-use-an-http-server-with-dojo/
考虑一下简单地使用节点js web服务器进行开发,并在电话应用程序中嵌入一个小型web服务。
您仍然可以尝试通过过时但仍然可用的接口dojo.someModule访问模块,因为由于兼容性问题,这些模块是在全局命名空间中定义的。不过,我不确定这是否有效。
您还可以尝试在dojo配置中将异步设置为false。
https://stackoverflow.com/questions/23857046
复制相似问题