在 GAE上写Dojo应用,GAE有1000文件上传限制,虽然可以通过删除dojoroot下的dojox(不会用到),删除国际化文件,把文件数降低到1000以下(还要设置
<resource-files> <exclude path="/dojoroot/**.*" /> <exclude path="/**.jpg" /> <exclude path="/**.gif" /> <exclude path="/**.js" /> <exclude path="/**.css" /> </resource-files>
排除这些文件,否则gae会把他们既当成静态文件又当成资源文件,一个文件数了2次,很容易超过1000),这样才可以发布dojo包到gae上开始写应用,
但还有一个方法就是dojo支持跨域加载,把http://o.aolcdn.com/dojo/1.3.0 替换dojoroot就可以,要注意的是
<script type="text/javascript" src="http://o.aolcdn.com/dojo/1.3.0/dojo/dojo.xd.js"
djConfig="parseOnLoad: true,isDebug:true"></script>
中是 dojo.xd.js 而不是 dojo.js,这样你的项目文件就不用包含任何dojo文件了
改了之后页面加载速度也快了
<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Account Preferences Final Form</title> <style type="text/css"> @import "http://o.aolcdn.com/dojo/1.3.0/dijit/themes/tundra/tundra.css"; @import "http://o.aolcdn.com/dojo/1.3.0/dojo/resources/dojo.css" </style> <script type="text/javascript" src="http://o.aolcdn.com/dojo/1.3.0/dojo/dojo.xd.js" djConfig="parseOnLoad: true,isDebug:true"></script> <script> dojo.require("dojo.parser" ); dojo.require("dijit.layout.ContentPane" ); dojo.require("dijit.layout.TabContainer" ); dojo.require("dijit.form.ValidationTextBox" ); dojo.require("dijit.form.DateTextBox" ); </script> <style> .formContainer { width: 600px; height: 600px; } label { width: 150px; float: left; } </style> </head>
当dojo与其他的css文件一起使用时,dijit会遭到破坏
一次加载所有组件
dojo.require("dojo.parser" );
dojo.require("dijit.dijit");
dojo.require("dijit.dijit-all");