diff --git a/config/urls.py b/config/urls.py index f55231f..c51110a 100644 --- a/config/urls.py +++ b/config/urls.py @@ -1,15 +1,15 @@ +import re + import debug_toolbar from django.conf import settings -from django.conf.urls.i18n import i18n_patterns -from django.conf.urls.static import static from django.contrib import admin -from django.urls import include, path +from django.conf.urls.i18n import i18n_patterns +from django.urls import include, path, re_path from django.utils.text import gettext_lazy as _ +from django.views.static import serve -i18n_resolvers = i18n_patterns( - path(_('users/'), include('users.urls', namespace='users')), -) +i18n_resolvers = i18n_patterns(path(_('users/'), include('users.urls', namespace='users'))) urlpatterns = [ @@ -25,7 +25,15 @@ for resolver in i18n_resolvers: urlpatterns += resolver.url_patterns +# Sin S3 activado no hay nginx ni otro servidor delante de uvicorn que sirva +# MEDIA_ROOT, así que Django tiene que servirlo también fuera de DEBUG. No se +# usa el helper static() porque este es un no-op fuera de DEBUG por diseño. +urlpatterns += [ + re_path( + r'^%s(?P.*)$' % re.escape(settings.MEDIA_URL.lstrip('/')), serve, {'document_root': settings.MEDIA_ROOT} + ) +] + if settings.DEBUG: urlpatterns.append(path('__debug__/', include(debug_toolbar.urls))) - urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += [path('silk/', include('silk.urls')), path('__reload__/', include('django_browser_reload.urls'))]