Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Sencha cmd app custom folder (https://javascript.ru/forum/extjs/55147-sencha-cmd-app-custom-folder.html)

Rastiniak 15.04.2015 20:18

Sencha cmd app custom folder
 
Проект на php + ext.
Хочу сгенерировать app не в корень сайта, а уровнем ниже.
В app.json выставил "indexHtmlPath": "../index.html".
bootstrap.json успешно грузит файлы либы, но после app.js не может найти Application.js, так как ищет его по адресу:"корень_сайта"/app/Application, а расположен он у меня в "корень_сайта"/app/src/Application.

Кто-нибудь сталкивался с подобным?

bastrakov 16.04.2015 09:26

вопрос не совсем понял, но рыть в направлении (пути указаны от рута):
Ext.Loader.setPath('Ext.ux', '/extjs/ux/');
Ext.Loader.setPath('Ext.calendar', '/extjs/calendar/src');

после чего можно вызывать что-то типа
Ext.create('Ext.ux.MyForm')
Ext.create('Ext.calendar.Date')

и оно "само найдет" все пути.

siber-biber 16.04.2015 12:45

http://docs.sencha.com/extjs/5.1/5.1...-cfg-appFolder

Rastiniak 16.04.2015 16:54

Спасибо, но теперь та же ошибка с /app/view/main/Main.js

Всё, что я хочу - это сделать sencha generate app не в корень сайта.
То есть не в папку web бэкенд-фреймворка, а в web/ext/

В корневой - всё работает.

novikov 17.04.2015 18:19

документация по sencha generate app

нужно запускать генерацию или из папки, в которой лежит распакованный extjs sdk, который вы скачали с сайта Сенчи, либо нужно указывать в команде дополнительный ключ с указанием этой папки.

Например, если в консоли открыта директория web, то пишем

sencha -sdk path/to/sdk/directory generate app -ext MyAppName ./ext

Файл app.json, кажется, нужен при сборке командой sencha app build, которую нужно запускать из web/ext в вашем случае.

Собранное приложение вы найдёте по адресу web/ext/build/production/MyAppName. Можете указать целевую директорию в app.json - output.

novikov 17.04.2015 19:44

Было ещё нечто похожее. Решение на форуме.

В index.html нужно написать следующее:

<script>Ext = window.Ext || {}; Ext.Boot={}; Ext.platformTags={};</script>

Это нужно, когда приложение не собирается в один файл для продуктива.

Rastiniak 20.04.2015 19:05

Цитата:

Сообщение от novikov (Сообщение 367209)
Например, если в консоли открыта директория web, то пишем

sencha -sdk path/to/sdk/directory generate app -ext MyAppName ./ext

Так проблема то не в том, что приложение не генерируется.А в том, что оно потом не работает.

В итоге:
1) Сгенерировал приложение в web/ext-view/
2) В app.json выставил "indexHtmlPath": "../index.php",
3) По подсказке siber-biber я выставил нужный appFolder у Ext.application
4) И там же в app.js я добавил Ext.require('[имя_приложения].view.main.Main');

После этого, всё заработало, но единственный компонент, treepanel отображался криво, я поменял тему(к сожалению сделать это можно не с помощью app refresh, а с помощью app build) и всё отлично отобразилось.

Build версию у меня подключить пока не удалось

novikov 21.04.2015 10:38

Поздравляю с устранением проблемы! Стало понятно, что приложение нужно не просто сгенерировать в поддиректории, но и запускать его из родительской директории. Возьму ваше решение на вооружение. Спасибо, что вы с siber-biber поделились им.

У нас есть формочки, которые мало того, что лежат не в корне сайта, но и отображаются внутри другого сайта на Джумле. Индексный файл не меняли правда. Вот например, кнопка отправки заявки, подвергнутая воздействию app build.

Тоже замечал, что после app build уходят неясные глюки в отрисовке.


Часовой пояс GMT +3, время: 02:04.