From 37376fecf4ed338efa70e0e809f425e8581086d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C=20=D0=9D=D0=B0=D0=B4=D0=B5?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Mon, 5 Jan 2026 14:39:32 +0300 Subject: [PATCH] fix: improve Service Worker serving with better error handling --- backend/eusrr_backend/urls.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/backend/eusrr_backend/urls.py b/backend/eusrr_backend/urls.py index 6425103d..fe15f055 100644 --- a/backend/eusrr_backend/urls.py +++ b/backend/eusrr_backend/urls.py @@ -2,9 +2,22 @@ from django.conf import settings from django.conf.urls.static import static from django.contrib import admin from django.urls import include, path -from django.views.static import serve +from django.http import FileResponse import os +def serve_service_worker(request): + """Обслуживает Service Worker с правильным content-type""" + sw_path = os.path.join(settings.BASE_DIR, 'sw.js') + try: + return FileResponse( + open(sw_path, 'rb'), + content_type='application/javascript', + status=200 + ) + except Exception as e: + from django.http import HttpResponse + return HttpResponse(f"Service Worker not found: {e}", status=500) + urlpatterns = [ path("admin/", admin.site.urls), path("auth/", include("employees.urls_front_auth", namespace="auth_front")), @@ -17,6 +30,6 @@ urlpatterns = [ path("finance/", include("finance.urls", namespace="finance")), path("api/", include(("api.urls", "api"), namespace="api")), # Service Worker должен быть в корне для правильного scope - path("sw.js", serve, {"document_root": settings.BASE_DIR, "path": "sw.js", "content_type": "application/javascript"}, name="sw"), + path("sw.js", serve_service_worker, name="sw"), path("", include("feed.urls_front", namespace="feed")), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)