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)