2013-07-26 21 views
1

嗨我正在开发一个在Ext-JS中实现的Web应用程序。我用命令./make_bootstrap.sh使用Sencha Cmd v3.0.0.250部署应用程序; ./make_compile.sh 部署期间没有问题。Sencha使用./make_bootstrap.sh部署Web应用程序时编译问题; ./make_compile.sh

该应用程序可以使用测试链路//mainApplication/app/index_debug.html或// mainApplication /应用(访问全classes.js)URL ....

当应用程序被部署来访问它将所有的javaScript文件压缩成一个文件,它是all-classes.js。部署成功。但是,当我从URL访问应用程序:// mainApplication /应用/ ......它显示了以下错误:

Uncaught TypeError: Cannot read property 'dom' of null all-classes.js:1 
Ext.define.initContainerall-classes.js:1 
Ext.define.renderall-classes.js:1 
Ext.define.doAutoRenderall-classes.js:1 
Ext.define.showall-classes.js:1 
(anonymous function)all-classes.js:1 
TableManager::findTables() content.scripts.c.js:11 

但是如果我访问使用的应用程序://myApplication/app/index_debug.html,它工作正常。这是为了测试的目的,它加载所有js文件单独不像访问通过所有classes.js

我浏览过类似的错误通过网络。但在这个级别还没有找到。如果应用程序可以通过index_debug.html访问,为什么它不能用相同的javaScript文件访问,但压缩?

+0

您是否在控制台中使用index_debug.html有任何警告?沿着“类XXX已经同步加载了一些东西,考虑使用Ext.require等”? – rixo

+0

你说得对。即使它运行,我也会在控制台中获得与index_debug.html相同的警告。 – nous

回答

0

压缩的all-classes.js显然会删除所有的空格,因此当格式化(使用Sublime Text的JSFormatter包)变成数千行时,它只是一行代码。由于这是一行,我无法找到浏览器在抱怨什么。我格式化了代码并运行了应用程序。并发现它在哪条线路上失败。它指向一个匿名函数。一旦我删除了该应用程序开始工作的功能...因此,这里的技巧是在firebug或chrome开发人员工具中调试时设置压缩代码的格式。