Изменения документа Встраивание скриптов
Редактировал(а) Alexandr Fokin 2024/01/25 15:43
отредактировано Alexandr Fokin
на 2024/01/22 13:21
на 2024/01/22 13:21
отредактировано Alexandr Fokin
на 2024/01/25 15:43
на 2024/01/25 15:43
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,0 +1,22 @@ 1 +|(% style="width:230px" %)Задача|(% style="width:1255px" %)((( 2 +Встроить свой JS файл в веб приложение. 3 + 4 +[[Плагины для браузера>>doc:Разработка.Frontend.JavaScript.Платформы.Браузер.Плагины для браузера.WebHome]], [[Сценарии>>doc:Разработка.Frontend.JavaScript.Платформы.Браузер.Сценарии.WebHome]] 5 +))) 6 +|(% style="width:230px" %)Окружение|(% style="width:1255px" %)Основано на использовании сервера [[IIS>>doc:Хостинг.ПО.Сервер.IIS.WebHome]] и функции [[Reverse proxy>>doc:Хостинг.ПО.Сервер.IIS.Reverse proxy.WebHome]]. 7 +Приложение сервер развернуто в виде Docker контейнера. 8 +|(% style="width:230px" %)1) Переписывание через proxy|(% style="width:1255px" %)((( 9 +Решение: Модифицировать исходный код страницы при прохождении через proxy, внедрив в него код загрузки скрипта. 10 + 11 +Сам скрипт был расположен на уровне proxy, таким образом, чтобы запрос к нему не перенаправлялся на приложение, а отдавался файл скрипта. 12 + 13 +Удалось реализовать переписывание страницы index.html, использую функционал proxy. 14 +Но это привело к тому, что сервер начал очень долго отвечать. Предположительно это вызвано либо нагрузкой на обработку потока файлов, либо необходимостью отключить сжатие (это требуется для работы механизма переписывания страниц). 15 +))) 16 +|(% style="width:230px" %)2) Переписывание исходной страницы|(% style="width:1255px" %)((( 17 +Решение: Найти в файловой системе приложения страницу index.html и провести ее модификацию. 18 + 19 +Было обнаружено, что страница формируется по следующему пути: "/tmp/appsmith/www". 20 +Папку можно вынести из контейнера (через volume) и модифицировать файлы. 21 +Нужно учитывать что страница генерируется при запуске приложения (контейнера), поэтому необходимо реализовать механизм, который будет автоматически модифицировать страницу. 22 +)))