Запуск исходной версии qooxdoo с веб-сервера

Я пытаюсь запустить исходную версию моего приложения qooxdoo с веб-сервера. Приложение нормально работает при загрузке из файловой системы, но не загружается при запуске с веб-сервера.


person Fabian Jakobs    schedule 14.01.2010    source источник


Ответы (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

person Tobi Oetiker    schedule 14.01.2010

Исходная версия большую часть времени запускается вне файловой системы (т. е. открывается с помощью файла: протокол в вашем браузере). Исходный сценарий просто ссылается на исходный код и ресурсы с относительными путями, где бы они ни находились в вашей файловой системе. Обычно это не подходит для запуска с веб-сервера. Даже если вы включите исходный каталог вашего приложения в путь, доступный для сервера (где-то ниже его 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 вашего приложения.

person Fabian Jakobs    schedule 14.01.2010