我使用最新的sencha cmd 5.0.2.270和最新的ExtJS 5.0.1创建了一个全新的工作空间。生成了一个应用程序。编写了一些代码。
我使用sencha app build生成生产版本。
开发加载很好,但生产版本尝试加载没有名称的文件并获得404
获取http://yassa-built.dev/.js?_dc=1410352524548 404(未找到) 在那个错误之后,它根本不会加载。
我无法理解它在寻找什么。发展并没有抱怨。
我用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
});
答案 0 :(得分:4)
在挣扎的第四天,一个简单的答案显露出来。
我错过了一个依赖。链:RedmedAdmin.store.Referals - > RedmedAdmin.model.Referal - > 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')。它没有包含在破碎的版本中。只有Ext.data.identifier.Uuid列在要求中。
答案 1 :(得分:3)
从build / testing /运行应用程序以查看缺少哪个依赖项。
答案 2 :(得分:1)
之前我遇到过同样的问题,修复方法是添加所需的Ext.layout.container.Border' &安培; ' Ext.layout.container.Center&#39 ;.我不得不手动注释掉代码&运行生产构建以检查(因为它在开发模式下工作正常)。在某些情况下,它会指出缺少的依赖项,如widget / ... js
答案 3 :(得分:1)
此问题与需要在requires数组中添加的类有关。我使用 Sencha 应用程序构建测试运行构建,然后在调试I cam中知道哪个类加载为空。为了解决我的问题,我添加了Ext.layout.container.Column
,但它可以是任何类,因此最好在测试中运行构建,然后确定问题。
答案 4 :(得分:1)
为了使这些配置属性正常工作,您需要将此“Ext.data.identifier.Uuid”类添加为项目级别。
在 Ex.Application app.js文件中包含 Ext.data.identifier.Uuid 需要
Ext.application({
requires: [
'Ext.data.identifier.Uuid' // Include it
],
models: [
'UsersModel',
'RolesModel',
'LoginModel'
]
.
.
.
.
});