ExtJS 5 запрашивает файл с пустым именем/.js
Я создал новое рабочее пространство с последним sencha cmd 5.0.2.270 и последним ExtJS 5.0.1. Создал приложение в. Написал немного кода.
Я создаю сборку сборки с помощью сборки sencha.
Разработка загружается хорошо, но производственная сборка пытается загрузить файл без имени и получает 404
GET 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
});
Ответы
Ответ 1
На четвертый день борьбы был выявлен простой ответ.
Я пропустил одну зависимость. Цепочка: 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}"
Он определяет схему для всех детей. Схема использует прокси-сервер отдыха (тип: "отдых" ). Он не был включен в сломанную версию. В запросе был указан только файл Ext.data.identifier.Uuid.
Ответ 2
Запустите приложение из сборки/тестирования/, чтобы увидеть, какая зависимость отсутствует.
Ответ 3
У меня была такая же проблема, и исправление заключалось в добавлении требуемого Ext.layout.container.Border 'и' Ext.layout.container.Center '. Мне пришлось вручную прокомментировать коды и запустить сборку для проверки (поскольку она отлично работает в режиме разработки). В некоторых случаях он указывал на отсутствующие зависимости, такие как widget/... js
Ответ 4
Эта проблема связана с классами, которые необходимо добавить в массив require. Я запустил сборку с помощью тестирования сборки приложений Sencha, а затем в блоке debug I, чтобы узнать, какой класс загружается пустым. Чтобы решить проблему, я добавил Ext.layout.container.Column
, но это может быть любой класс, поэтому лучше запустить сборку в процессе тестирования, а затем определить проблему.
Ответ 5
Чтобы эти свойства конфигурации работали правильно, вам необходимо добавить этот класс "Ext.data.identifier.Uuid" в качестве уровня проекта.
Включить Ext.data.identifier.Uuid, поскольку требует в файле Ex.Application app.js
Ext.application({
requires: [
'Ext.data.identifier.Uuid' // Include it
],
models: [
'UsersModel',
'RolesModel',
'LoginModel'
]
.
.
.
.
});