extjs5。Ext.application不是一个函数。为什么?

extjs5。Ext.application不是一个函数。为什么?,extjs,extjs5,Extjs,Extjs5,控制台中出现错误:Ext.application不是函数。我的index.html文件包含以下代码: ... <link rel="stylesheet" type="text/css" href="/ext-5.0.1/packages/ext-theme-neptune/build/resources/ext-theme-neptune-all.css" /> <script src="/ext-5.0.1/ext-all-debug.js"></script&

控制台中出现错误:
Ext.application不是函数
。我的
index.html
文件包含以下代码:

...
<link rel="stylesheet" type="text/css" href="/ext-5.0.1/packages/ext-theme-neptune/build/resources/ext-theme-neptune-all.css" />
<script src="/ext-5.0.1/ext-all-debug.js"></script>    
<script type="text/javascript" src="app.js"></script>    
...
编辑


顺便说一下,即使运行“official”
/ext-5.0.1/examples/app/simple/simple.html
我也会遇到同样的错误。这是为什么?

将对
Ext.application
的调用包装在
Ext.onReady
块中

// app.js
Ext.onReady(function() {
  Ext.application({
    name: 'AM',
    appFolder: 'app',
    launch: function() {
      Ext.create('Ext.container.Viewport', {
        layout: 'fit',
        items: [{
          xtype: 'panel',
          title: 'Users',
          html : 'List of users will go here'
        }]
      });
    }
  });
})
顺便说一句,这是必要的,因为ext-all-debug.js文件并不包含所有的ExtJS。它包含引导代码—知道如何获取其他所有内容的代码。“其他一切”的一部分是应用程序代码。所以,在它有机会运行之前,Ext.application是不存在的

您提到的门户示例之所以有效,是因为它使用了
sencha应用程序构建的结果
——即
microloader.js
。这将加载完整版本的ExtJS(或者更确切地说,应用程序中使用的部分),因此Ext.application在使用时已经定义好了。(Sencha Fiddle也一样-您也不需要Ext.onReady)

而不是

<script src="/ext-5.0.1/ext-all-debug.js"></script>

你应该使用

<script src="/ext-5.0.1/build/ext-all-debug.js"></script>


第二个包含预期的所有组件和类

你的代码在我这边运行得很好,试试这里你确定这是唯一的错误吗?这个声明通常存在于一个全局上下文中——如果有其他问题,它可能会杀死整个页面。但当我改为ext4.1.1版本时,一切都正常。这是某种禁令吗?我的意思是,你必须有商业许可证才能使用这种编码。或者没有?很抱歉,您有该产品的商业版还是公共版?好吧,包装在Ext.onReady中没有效果好吧,让我们试试“愚蠢的问题”解决方案-它是否成功加载
/Ext-5.0.1/Ext all debug.js
文件?另一种可能性是,因为您使用的是夜间构建,所以您可能有一个损坏的版本。在5.0.0版本中试用。是的,它正在成功加载它,因为
Ext.application不是函数
是我在控制台中看到的唯一错误。我现在将检查5.0.0版本。嗯,这是一件非常奇怪的事情。我刚刚检查了5.0.0版本,这里是我得到的。示例/应用程序/文件夹中的示例未运行的原因与此相同-
Ext.application不是函数
,但门户文件夹中的示例运行正常。
<script src="/ext-5.0.1/build/ext-all-debug.js"></script>