Запуск исходной версии qooxdoo с веб-сервера - PullRequest
3 голосов
/ 14 января 2010

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

Ответы [ 2 ]

4 голосов
/ 14 января 2010

Допустим, у вас есть инфраструктура 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

3 голосов
/ 14 января 2010

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

Так что, если вы оказались в ситуации, когда вам нужно запустить исходную версию вашего приложения с веб-сервера, учтите следующие подсказки:

  • Сделайте исходный каталог вашего приложения доступным для веб-сервера, чтобы он был доступен через действительный URL-адрес, такой как http://your.web.server/path/to/yourapp/source/index.html.

  • Убедитесь, что все компоненты, используемые вашим приложением, как и сам пакет qooxdoo SDK, и любая дополнительная библиотека или вкладка qooxdoo, которые одинаково доступны для веб-сервера.

    • В случае ссылок, на которые ссылается псевдопротокол contrib: // в конфигурации вашего приложения, они загружаются и хранятся в каталоге кеша загрузки (кеш / загрузки ключа конфигурации), поэтому убедитесь, что этот путь включен в ваши соображения .
  • Убедитесь, что относительные пути на веб-сервере совпадают с указанными в вашей файловой системе, например. если ваше приложение живет в файловой системе в /a/b/A/myapp и ваша установка qooxdoo находится в /a/b/Z/qooxdoo-sdk и путь сервера к вашему приложению /web/apps/myapp затем убедитесь, что путь к серверу qooxdoo /web/Z/qooxdoo-sdk так что относительные ссылки типа ../Z/qooxdoo-sdk will работают под веб-сервером.

Простой способ добиться этого - сопоставить DocumentRoot или Alias ​​с каталогом в вашей файловой системе, который является общим родителем для всех задействованных компонентов qooxdoo вашего приложения.

...