Кэширует ли django файлы в MEDIA_ ROOT по умолчанию? - PullRequest
0 голосов
/ 06 мая 2020

Я использую чистую установку Django 3 на сервере разработки контейнера Docker.

У меня есть следующие settings.py:

MEDIA_ROOT = '/vol/web/media/'
MEDIA_URL = '/media/'

И в urls.py:

urlpattens = [ ... ] + static(settings.MEDIA_URL, 
                              document_root=settings.MEDIA_ROOT) + 
                       static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Когда я загружаю файл, используя models.FileField(), он отлично отображается через 127.0.0.1:8000/media/myfile.txt. Однако, когда я подключаюсь к серверу, чтобы найти его, /vol/web/media пуст (docker-compose run app sh).

, я ожидаю, что файл, который я загружаю, будет в этом каталоге, согласно документации, но это не так.

Я подтвердил следующее:

  • 127.0.0.1:8000/media/myfile.txt возвращает myfile.txt, даже если кеш браузера очищен.
  • 127.0.0.1:8000/media/notmyfile.txt возвращает /vol/web/media/notmyfile.txt does not exist, поэтому сервер выглядит правильно настроенным
  • У меня нет настроек CACHE, явно заданных в settings.py.

Кроме того, find / -name "myfile.txt" не возвращает любые результаты в оболочке сервера.

Что здесь может происходить? Есть ли Django кешировать MEDIA_ROOT как-то по умолчанию?

...