Как создать готовый исходный код для веб-сервера?

Я пытаюсь найти способ сгенерировать (с помощью generate.py source-all) код приложения, который готов к запуску с веб-сервера (например, Tomcat). Единственное, что мешает мне это сделать, это то, что myapp.js содержит URI файловой системы в объекте libinfo:

var libinfo = {
  "__out__":{"sourceUri":"script"},
  "myapp":{"resourceUri":"../source/resource","sourceUri":"../source/class"},
  "qx":{
    "resourceUri":"file:///C:/dev/qooxdoo-5.0.1-sdk/framework/source/resource",
    "sourceUri":"file:///C:/dev/qooxdoo-5.0.1-sdk/framework/source/class",
    "sourceViewUri":"https://github.com/qooxdoo/qooxdoo/blob/%{qxGitBranch}/framework/source/class/%{classFilePath}#L%{lineNumber}"
  }
};

Когда я вручную меняю resourceUri и sourceUri с

file:///C:/dev/qooxdoo-5.0.1-sdk/framework/source/...

to

/myapp/qooxdoo-5.0.1-sdk/framework/source/...

страница приложения успешно загружается в браузере со всеми зависимостями (сгенерированные исходники уже находятся в корне документа, а содержимое фреймворка "qooxdoo-5.0.1-sdk" загружается из-за сопоставления /myapp/qooxdoo-5.0.1-sdk => C :\Dev\qooxdoo-5.0.1-sdk настроен на сервере).

Есть ли способ сообщить generate.py, что доступ к моим файлам инфраструктуры SDK должен осуществляться через URL-адрес (/myapp/qooxdoo-5.0.1-sdk/...) вместо URI файловой системы?

(Я вижу, что есть ряд «опций компиляции», которые можно указать в config.json (qooxdoo Documentation Release 5.1: глава 11.3.3 — Ключи конфигурации генератора), но похоже, что ни один из них не решает проблему)


person GoranM    schedule 01.02.2016    source источник


Ответы (1)


В вашем config.json у вас будет раздел «jobs», содержащий раздел «libraries», содержащий массив «library» — ваше приложение представляет собой библиотеку, как и Qooxdoo, как и любые другие вклады, поэтому оно будет выглядеть примерно так:

"jobs" : {
    "libraries" : {
        "=library" : [ {
            "manifest" : "${QOOXDOO_PATH}/framework/Manifest.json"
        }, {
            "manifest" : "Manifest.json"
        }
    },

Каждый объект «библиотеки» может иметь свойство «uri», поэтому для вашего примера вы, вероятно, захотите что-то вроде этого:

"jobs" : {
    "libraries" : {
        "=library" : [ {
            "manifest" : "${QOOXDOO_PATH}/framework/Manifest.json",
            "uri" : "/some/other/uri/qooxdoo-5.0.1-sdk"
        }, {
            "manifest" : "Manifest.json"
        }
    },

а затем на своем веб-сервере либо расположите каталог qooxdoo-5.0.1-sdk соответствующим образом, либо создайте сопоставление с ним.

person johnspackman    schedule 27.04.2016
comment
Извините, я прекратил экспериментировать с qooxdoo, поэтому не могу проверить ваш ответ. Спасибо хоть. - person GoranM; 27.04.2016