Files

2.9 KiB

Why

Веб-интерфейс VESTI (web/) зависит от двух внешних CDN:

  • https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css (base.html:7, login.html:7)
  • https://unpkg.com/htmx.org@1.9.12 (base.html:8)

При фильтрации/действиях страница ждёт ответа от unpkg.com — если CDN недоступен или замедлен (а в РФ это распространённая проблема), браузер висит в ожидании скрипта. Это внешняя зависимость, которая не нужна локальному сервису: VESTI работает на bigbox за Caddy/TLS и не должна зависеть от сторонних доменов. Пользователь явно против ожидания ответа от unpkg.com.

What Changes

  • Убрать https://unpkg.com/htmx.org@1.9.12 из web/templates/base.html.
  • Убрать https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css из web/templates/base.html и web/templates/login.html.
  • Отказаться от HTMX: кнопки «Опубликовать»/«Отклонить» перевести с hx-post на обычные <form method="post"> (полная перезагрузка страницы — приемлемо для прототипа, снимает зависимость от JS).
  • Bootstrap: скачать CSS локально в web/static/ (или, если критично, минимизировать использование классов и обойтись собственным минимальным CSS). Рекомендуемый вариант — локальный файл web/static/bootstrap.min.css из той же версии 5.3.3.
  • Все ссылки на внешние CDN удалить; в шаблонах не останется ни одного http(s):// на сторонние домены.
  • JS в страницах — только свой (если нужен), без unpkg/jsdelivr/cdn.*.

Impact

  • Файлы: web/templates/base.html, web/templates/login.html, web/templates/candidates.html (замена hx-post на form), возможно web/templates/published.html/metrics.html (если там есть hx-атрибуты).
  • Добавится web/static/bootstrap.min.css (~230 KB).
  • Поведение: approve/reject больше не будут ajax-без-перезагрузки, а будут обычными POST с редиректом. Для прототипа это нормально.
  • Снимается зависимость от интернета/CDN при работе веб-UI.
  • Rollback: вернуть две строки CDN в base.html + вернуть hx-post — ничего больше не меняется.