5.7.3.5. Ресурсы¶
Сервис отвечает за загрузку ресурсных файлов.
Адреса сервиса
http://{server[:port]}/{DB}/app/sys/resource/sid/{sid}/siv/{SIV}/name/{path}
http://{server[:port]}/{DB}/app/sys/resource/sid/{sid}/name/{path}
http://{server[:port]}/{DB}/app/sys/resource/siv/{siv}/name/{path}
http://{server[:port]}/{DB}/app/sys/resource/name/{path}
где:
{sid}
- уникальный идентификатор рабочего сеанса, строковое представление GUID.{siv}
- идентификатор образа решения. Необходим, чтобы браузер “понимал” изменение версии ресурса и загружал его с сервера, а не из собственного кэша.{path}
- относительный путь к ресурсу.
Порядок определения требуемого образа решения (загрузчик классов прикладного кода):
Текущий образ решения для E-сессии, если указан {sid}.
Текущий образ решения (загрузчик классов прикладного кода) в остальных случаях.
Загрузка ресурса по имени делегирована классу прикладного кода, реализующему интерфейс ru.bitec.gtk.core.sbt.CoreWebResourceSupplier
.
Делегат может возвращать источник ресурса следующих типов:
URL
InputStream,
массив байт
объект Response с полным определением параметров http-ответа.
Если делегат в ответ на запрос CSS-файла или изображения возвращает источник ресурса, в http-ответ добавляется заголовок “cache-control”, управляющий кэшированием ресурсов в браузере.
Для предотвращения утечки скомпилированных кодов прикладных приложений, реализована фильтрация отдаваемых ресурсов по расширению. Запрещена отдача скомпилированного и не скомпилированного java/scala кода и содержимого каталога “META-INF/”.
See also