ExtJS 5请求文件名为空/.js

ExtJS 5 requests file with empty name /.js

本文关键字:js 文件名 请求 ExtJS      更新时间:2023-09-26

我用最新的sencha cmd 5.0.2.270和最新的ExtJS 5.0.1制作了一个全新的工作空间。在中生成了一个应用程序。编写了一些代码。

我用sencha应用程序构建生成生产构建。

开发加载良好,但生产构建尝试加载没有名称的文件,并获得404

得到http://yassa-built.dev/.js?_dc=1410352524548404(未找到)在那个错误之后,它根本不加载。

我不明白它在寻找什么。发展一点也不抱怨。

我用它做了一个档案https://mega.co.nz/#!Dk0gDRJD!dNITsq1fGFs5T4d-4yYFnA6_K6EcAhFkxoeEjaJu7MY(~600kb)。它包括来源和生产构建。

UPD我找到了它开始断裂的地方。在文件RadioAdminController.js.中

 case 'menu_referals':
    return app.setSubView('redmed-radioapp-referals', {
      store: Ext.create('RedmedAdmin.store.Referals')
    });

如果我不创建一个商店,它是有效的。生产版本还可以。商店没有什么特别之处:

Ext.define('RedmedAdmin.store.Referals', {
  extend: 'Ext.data.Store',
  model: 'RedmedAdmin.model.Referal',
  autoLoad: false,
  autoSync: true
});

在挣扎的第四天,一个简单的答案揭晓了。

我错过了一个依赖。链:RedmedAdmin.store.Referrals->RedmedAdmin.model.Referral->RedmedAdmin.model.redmed.RadioAppBase.

当我提供档案时,我将在这里列出类RedmedAdmin.model.redmed.RadioAppBase(工作版本):

Ext.define 'RedmedAdmin.model.redmed.RadioAppBase',
    extend: 'Ext.data.Model'
    requires: ['Ext.data.identifier.Uuid', 'Ext.data.proxy.Rest']
    identifier: 'uuid'
    fields: [{
            name: 'id'
            type: 'string'
    }]
    schema:
            namespace: 'RedmedAdmin.model.redmed.radioapp'
            proxy:
                    type: 'rest'
                    url: 'http://10.0.29.140:6543/api/rest/{entityName:lowercase}'
                    reader:
                        type: 'json'
                        rootProperty: '{entityName:lowercase}'
                    listeners:
                        'exception': (request, operation, eOpts ) ->
                            Ext.log {level: 'error'}, "Data request to #{request.url} failed. Reply: #{operation.responseText}"

它为所有子级定义了一个模式。架构使用rest代理(类型:"rest")。它没有包含在损坏的版本中。requires中只列出了Ext.data.identifier.uid。

从build/testing/运行应用程序以查看缺少哪个依赖项。

我以前也遇到过同样的问题,修复方法是添加所需的Ext.layout.contacter.Border'&'Ext.layout.contage.Center。我不得不手动注释掉代码&运行生产构建进行检查(因为它在开发模式下运行良好)。在某些情况下,它会指出缺少的依赖项,如widget/。。。js

这个问题与需要添加到requires数组中的类有关。我使用Sencha应用程序构建测试运行构建,然后在调试中我可以知道哪个类加载为空。为了解决我的问题,我添加了Ext.layout.container.Column,但它可以是任何类,所以最好运行内建测试,然后识别问题。

为了使这些配置属性正常工作,您需要添加此"Ext.data.identifier.Uuid"类作为项目级别。

包括Ext.data.identifier.Uuid,因为需要示例应用程序app.js文件中

Ext.application({
    requires: [
        'Ext.data.identifier.Uuid' // Include it
    ],
    models: [
        'UsersModel',
        'RolesModel',
        'LoginModel'
    ]
    .
    .
    .
    .
});