Я пытаюсь запустить исходную версию моего приложения qooxdoo с веб-сервера. Приложение нормально работает при загрузке из файловой системы, но не загружается при запуске с веб-сервера.
Запуск исходной версии qooxdoo с веб-сервера
Ответы (2)
Допустим, у вас есть платформа qooxdoo в: /usr/pack/qooxdoo-1.0/frontend
и ваше приложение в /home/user/myproject
. Теперь добавьте символическую ссылку в каталог приложения следующим образом:
ln -s ../../../../../../../usr/pack/qooxdoo-1.0/frontend qooxdoo
В файле config.json
установите QOOXDOO_PATH
на qooxdoo
Таким образом, все ссылки на источник qooxdoo должны работать независимо от кажущейся глубины локального корня. Для веб-сервера вам может потребоваться разрешить FollowSymlink или что-то подходящее...
PS этот подход имеет приятный побочный эффект: ваше приложение также работает при запуске в Windows через \\server\user\myproject\source\index.html
Исходная версия большую часть времени запускается вне файловой системы (т. е. открывается с помощью файла: протокол в вашем браузере). Исходный сценарий просто ссылается на исходный код и ресурсы с относительными путями, где бы они ни находились в вашей файловой системе. Обычно это не подходит для запуска с веб-сервера. Даже если вы включите исходный каталог вашего приложения в путь, доступный для сервера (где-то ниже его DocumentRoot или одного из определенных псевдонимов), есть вероятность, что исходный сценарий ссылается на файлы, которые находятся за пределами области документа веб-сервера.
Поэтому, если вы окажетесь в ситуации, когда вам нужно запустить исходную версию вашего приложения с веб-сервера, обратите внимание на следующие советы:
Сделайте исходный каталог вашего приложения доступным для веб-сервера, чтобы он был доступен через действительный URL-адрес, например
http://your.web.server/path/to/yourapp/source/index.html
.Убедитесь, что все компоненты, используемые вашим приложением, такие как сам qooxdoo SDK и любая дополнительная библиотека qooxdoo, которую вы используете, одинаково доступны для веб-сервера.
- In the case of contribs referenced through the contrib:// pseudo protocol in your application configuration, these are downloaded and stored in the download cache directory (config key cache/downloads), so make sure this path is included in your considerations.
Убедитесь, что относительные пути на веб-сервере совпадают с путями в вашей файловой системе, например если ваше приложение находится в файловой системе по адресу
/a/b/A/myapp
, а ваша установка qooxdoo — по адресу/a/b/Z/qooxdoo-sdk
, а путь сервера к вашему приложению —/web/apps/myapp
, убедитесь, что путь сервера к qooxdoo —/web/Z/qooxdoo-sdk
, чтобы относительные ссылки, такие как../Z/qooxdoo-sdk will
, работали под веб-сервером.
Простой способ добиться этого — сопоставить DocumentRoot или псевдоним с каталогом в вашей файловой системе, который является общим родителем для всех задействованных компонентов qooxdoo вашего приложения.