fix: improve Service Worker serving with better error handling

This commit is contained in:
Игорь Надеин 2026-01-05 14:39:32 +03:00
parent bb95d744fb
commit 37376fecf4

View File

@ -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)