Внешние статические ресурсы
Введение
Основные статические ресурсы для web-приложения располагаются внутри модулей. Однако
существует необходимость иметь в приложении внешние ресурсы, зачастую сгенерированные.
Например, это может быть проект, собранный webpack
.
Конечно, такие ресурсы можно монтировать в виртуальную файловую систему (подробности) в ручную. Однако тогда следует учитывать, что эти файлы должны быть доступны и в режиме разработки и в product-режиме. И для этого нужно предпринимать определенные шаги. Как минимум - копировать эти файлы в дистрибутив и настраивать приложение таким образом, что бы это файлы были доступны ему.
Для облегчения этой задачи в файле project.jc
проекта можно указать, какие ресурсы и
куда подключать. Они будут доступны в режиме разработки. При сборке продукта - они так же
соберутся и будут помещены в продукт.
Настройка project.jc
Пример:
import jandcode.core.web.jc.*
import jandcode.jc.*
class Project1 extends ProjectScript {
void onInclude() {
// .....
include(WebRootProject).with {
// подключаем каталог ./frontend/_gen к проекту
// в виртуальную папку "app", т.е. все в каталоге ./frontend/_gen
// будет доступно в приложении по адресу http://HOST/app
addResourceWebroot("./frontend/_gen", "app")
// подключаем каталог ./frontend/public к проекту
// в корневую виртуальную папку, т.е. все в каталоге ./frontend/public
// будет доступно в приложении по адресу http://HOST/
addResourceWebroot("./frontend/public")
}
}
}
После этой настройки, в момент выполнения команды jc prepare
, в файл _app.cfx
будут
внесены изменения, который подключат эти каталоги в виртуальную файловую систему. Эти
файлы будут доступны напрямую в режиме разработки.
При сборке продукта будет собран файл web-resource-webroot.jar
, в который будут включены
все указанные ресурсы. Этот файл будет помещен в продукт и ресурсы будут доступны в
собранном приложении.