Skip to content

Commit 95b1f0a

Browse files
author
AhmadMWaddah
committed
Fix: Serve media files in production for reports
Added /media/<path> route in production to serve report CSV downloads
1 parent c27f346 commit 95b1f0a

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

config/urls.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from django.urls import include, path
1414
from django.views.generic.base import RedirectView, TemplateView
1515
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
16+
1617
import core.views as core_views
1718

1819
urlpatterns = [
@@ -48,6 +49,18 @@
4849
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
4950
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
5051

52+
# Serve media files in production (for report downloads)
53+
if not settings.DEBUG:
54+
from django.contrib.auth.decorators import login_required
55+
from django.views.static import serve
56+
57+
def serve_media(request, path, **kwargs):
58+
return serve(request, path, document_root=settings.MEDIA_ROOT, **kwargs)
59+
60+
urlpatterns += [
61+
path("media/<path:path>", login_required(serve_media), name="serve_media"),
62+
]
63+
5164
handler403 = "core.views.error_403"
5265
handler404 = "core.views.error_404"
5366
handler500 = "core.views.error_500"

0 commit comments

Comments
 (0)