Files
vesti/openspec/changes/archive/2026-09-13-deexternalize-web-assets/design.md
T

27 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Дизайн
### 1. Убрать HTMX (unpkg.com)
`web/templates/candidates.html`:
- Строки 50-65: `<form class="d-inline" method="post" action="/posts/{{ p.id }}/approve" hx-post=... hx-target=... hx-swap=...>` →
`<form class="d-inline" method="post" action="/posts/{{ p.id }}/approve">`. Кнопка остаётся `type="submit"`.
- Строка 66: `<button ... hx-post="/posts/{{ p.id }}/reject" hx-target="..." hx-swap="outerHTML">` →
обернуть в `<form class="d-inline" method="post" action="/posts/{{ p.id }}/reject">` + `<button type="submit">`.
- Убрать все `hx-*` атрибуты по проекту.
### 2. Локализовать Bootstrap
- Скачать: `curl -sL https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css -o web/static/bootstrap.min.css`
- В `base.html` и `login.html` заменить `<link href="https://cdn.jsdelivr.net/...">` →
`<link href="/static/bootstrap.min.css" rel="stylesheet">`.
- FastAPI уже монтирует `/static` (app.mount в web/app.py:27) — STATIC_DIR существует
(`web/static/`), сейчас пустой.
### 3. Проверка
- `grep -rn "unpkg\|jsdelivr\|cdn\." web/` → пусто.
- `curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8400/login` → 200.
- Страница рендерится с локальным CSS (визуально не отличается).
- Approve/reject работают POST-формами (редирект на /published / /candidates?status=rejected).
- network-панель браузера: нет запросов к unpkg.com/jsdelivr.net.