Я использую чистую установку 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
как-то по умолчанию?