fix(pwa): SW не вмешивается в /hubs/* — SignalR negotiate сломался
Some checks are pending
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 Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions

SignalR через web sockets/long-poll стримит данные, его нельзя кешировать.
В пред-версии SW не интерсептировал POST, но GET-fetch для negotiate
проходил через SW pipeline и валился TypeError'ом.

Фикс: явный return на /hubs/* перед всеми стратегиями.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
nns 2026-05-31 21:28:06 +05:00
parent 76a175f491
commit 6f9dd11b0a

View file

@ -38,6 +38,9 @@ self.addEventListener('fetch', (event) => {
const req = event.request; const req = event.request;
if (req.method !== 'GET') return; // не вмешиваемся в мутации if (req.method !== 'GET') return; // не вмешиваемся в мутации
const url = new URL(req.url); const url = new URL(req.url);
// SignalR-хаб (/hubs/*): long-poll / WebSocket-handshake, через cache не
// обходится — SW не вмешивается.
if (url.pathname.startsWith('/hubs/')) return;
// Навигация по приложению — SPA shell. // Навигация по приложению — SPA shell.
if (req.mode === 'navigate') { if (req.mode === 'navigate') {