Django - Доступ к статическим/медиа файлам по удаленному url вместо локального.

Я не могу найти ответ на свой вопрос в Интернете, поэтому вот он, с некоторым контекстом: У меня есть приложение Django, работающее на сервере, и я хотел бы продолжить работу над ним локально с помощью команды "runserver". Моя проблема связана с использованием общих статических и медиа файлов. Содержимое папки media часто меняется в production, и мне приходится скачивать эти медиафайлы с сервера каждый раз, когда я хочу разработать приложение локально и добавить их в путь MEDIA_ROOT на моем компьютере. База данных является общей как для dev, так и для production среды, так как это MySQL хост на моем сервере.

Мой вопрос прост, как я могу сказать Django в локальном режиме искать статические и медиа файлы на удаленном url с моего доменного имени вместо localhost?

Поиск СМИ на : https://example.com/media/

вместо : https://127.0.0.1:8000/media/

Надеемся, что это возможно без особых усилий!

Заранее благодарю за помощь

Вы просто тестируете после основного url

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL,
                  document_root=settings.STATIC_ROOT)
else:
   Production
  

Я не очень понимаю, почему к файлам static нужно относиться одинаково - они должны быть частью вашего проекта sources. Поэтому локальное хранилище должно иметь более высокий приоритет.

Но обслуживание любого из таких файлов по-прежнему является просто диспетчеризацией URL, поэтому вместо этого:

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Вы можете попробовать что-то вроде этого:

urlpatterns += [
    path(settings.MEDIA_URL + "<path:file_path>", RedirectView.as_view(url="https://example.com/media/%(file_path)"))
]

(не проверял)

RedirectView docs почти аналогичный вопрос

Вернуться на верх