food-market/src/food-market.web/index.html
nns 466e546ae2
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker Public / Build + push Public (test + latest) (push) Waiting to run
Docker Public / Deploy :test → test.food-market.kz (push) Blocked by required conditions
Docker Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions
rebrand: кэш-бастинг логотипа (старое лого залипало в SW/кэше)
Причина: SW веб-админки прекэшировал /logo.svg и отдавал stale, CACHE_VERSION не
менялся при ребрендинге; публичный сайт отдавал лого/favicon без Cache-Control.

- sw.js: CACHE_VERSION fm-v2 → am-v3 (+ASSET_VERSION am3); activate чистит старые
  кэши, skipWaiting+clients.claim; прекэш бренд-ассетов версионирован; бренд в
  комментариях → ALL MARKET.
- ?v=am3 на нехэшированных бренд-ассетах: index.html, manifest, Logo.tsx,
  публичный Logo.astro + BaseLayout favicon.
- nginx web: index.html + бренд-ассеты + manifest → no-cache; /assets/* → immutable.
- nginx public: html + лого/favicon → no-cache; /_astro/* → immutable.

Проверено Playwright: старый клиент (SW fm-v2 + лого Food Market) → после выкладки
+ 1 перезагрузки кэш am-v3, fm-v2 удалён, лого ALL MARKET. Заметка на будущее про
очистку API_CACHE при logout — в прогресс-доке.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 19:47:41 +05:00

24 lines
1.2 KiB
HTML

<!doctype html>
<html lang="ru-KZ">
<head>
<meta charset="UTF-8" />
<!-- ?v=am3 — версия бренд-ассетов для обхода кэша (см. sw.js ASSET_VERSION).
При смене логотипа bump ?v здесь, в manifest, в Logo.tsx и CACHE_VERSION в sw.js. -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg?v=am3" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png?v=am3" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>ALL MARKET</title>
<meta name="theme-color" content="#00B207" />
<!-- PWA: manifest + apple-touch-meta. SW регистрируется в main.tsx. -->
<link rel="manifest" href="/manifest.webmanifest?v=am3" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<meta name="apple-mobile-web-app-title" content="ALL MARKET" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png?v=am3" />
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>