Запрос медиафайлов в django, когда отладка ложная
я пытался установить media root и media url, но когда debug равен false, ничего не возвращается
settings.py
...
DEBUG = False
ALLOWED_HOSTS = [
'127.0.0.1',
'0.0.0.0',
...
]
...
STATIC_URL = 'static/'
STATICFILES_DIRS = [
BASE_DIR / "static",
]
STATIC_ROOT = BASE_DIR / 'staticfiles'
MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = 'media/'
urls.py
...
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
...
Что нужно сделать, чтобы вернуть медиафайлы в мои проекты
Когда DEBUG=False
, локальные файлы будут недоступны. Вам нужно попробовать любое онлайн-хранилище для статических и мультимедийных файлов, например, AWS S3 bucket и т.д.
Гид:
Я нашел ответ
urls.py
...
from django.urls import re_path
from django.conf import settings
from django.conf.urls.static import static
from django.views.static import serve
...
urlpatterns = [
...
re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
...
]
...
# urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
...
Эта re_path
функция может запросить все файлы в MEDIA_ROOT
в settings.py