Исходный код вики Встраивание скриптов
Версия 1.4 от Alexandr Fokin на 2024/01/25 15:43
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
| |
1.4 | 1 | |(% style="width:230px" %)Задача|(% style="width:1255px" %)((( |
| 2 | Встроить свой JS файл в веб приложение. | ||
| 3 | |||
| 4 | [[Плагины для браузера>>doc:Разработка.Frontend.JavaScript.Платформы.Браузер.Плагины для браузера.WebHome]], [[Сценарии>>doc:Разработка.Frontend.JavaScript.Платформы.Браузер.Сценарии.WebHome]] | ||
| 5 | ))) | ||
| |
1.2 | 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 | |||
| |
1.3 | 19 | Было обнаружено, что страница формируется по следующему пути: "/tmp/appsmith/www". |
| |
1.2 | 20 | Папку можно вынести из контейнера (через volume) и модифицировать файлы. |
| 21 | Нужно учитывать что страница генерируется при запуске приложения (контейнера), поэтому необходимо реализовать механизм, который будет автоматически модифицировать страницу. | ||
| 22 | ))) |