1

您好我正在开发一个在 Ext-JS 中实现的 Web 应用程序。我使用 Sencha Cmd v3.0.0.250 和命令 ./make_bootstrap.sh 部署了应用程序;./make_compile.sh 部署过程中没有问题。

可以使用测试链接 //mainApplication/app/index_debug.html 或 //mainApplication/app (accesses all-classes.js) url...访问应用程序。

部署应用程序时,它将所有 javaScript 文件压缩到一个文件中,即 all-classes.js。部署成功。但是当我从 url://mainApplication/app/... 访问应用程序时,它显示以下错误:

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 文件,这与通过 all-classes.js 访问不同

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

4

1 回答 1

0

压缩后的 all-classes.js 显然会删除所有空格,因此当格式化(使用 Sublime Text 的 JSFormatter 包)变成数千行时,它只是一行代码。因为它是一行,所以我找不到浏览器在抱怨什么。我格式化了代码并运行了应用程序。并准确找到它失败的那一行。它指向一个匿名函数。一旦我删除了应用程序开始工作的功能......所以这里的提示是在 firebug 或 chrome 开发人员工具中调试时格式化压缩代码。

于 2013-07-30T20:10:34.617 回答