STATIC_ROOT и MEDIA_ROOT правильная конфигурация

Я использую эти конфигурации STATIC_ROOT и MEDIA_ROOT:

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'wsgi', 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'wsgi', 'static', 'media')
MEDIA_URL = '/media/'
MEDIA_DIR = os.path.join(BASE_DIR, "")

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, "templates"),
)

И я использую эту модель:

class Picture(models.Model):
    image = models.ImageField(upload_to='media', verbose_name="Foto")

Но картинка загружается в эту папку:

/project_root/wsgi/static/media/media

Когда я пытаюсь найти изображение через «Проверить элемент», он показывает этот URL:

/media/media/picture.jpg

Но правильный URL:

media/wsgi/static/media/media/picture.jpg

Можете ли вы помочь мне, что я делаю неправильно? Спасибо.

Изменить

Выше информация, когда я бегу локально. Это данные развертывания:

Request URL:    http://phoebe-rogergonzalez.rhcloud.com/media/media/picture.jpg
"/var/lib/openshift/bunchofnumbers/app-root/runtime/repo/media/picture.jpg" doesn't exists.

Кроме того, я использую OpenShift.


person Roger Gonzalez    schedule 23.02.2016    source источник
comment
Почему это правильный URL? URL-адрес — это то, что вы определяете в MEDIA_URL; он не имеет и не должен иметь никакого отношения к MEDIA_ROOT, где файлы хранятся для веб-сервера для их обслуживания.   -  person Daniel Roseman    schedule 23.02.2016
comment
Что я имею в виду под правильным URL-адресом, так это то, где в настоящее время находится изображение @DanielRoseman   -  person Roger Gonzalez    schedule 23.02.2016
comment
Но картинка находится в файловой системе. Какой URL-адрес вы обслуживаете, не имеет к этому никакого отношения. /media/ нужно просто настроить для обслуживания файлов из /wsgi/static/media, что и есть.   -  person Daniel Roseman    schedule 23.02.2016
comment
Должен ли я установить MEDIA_URL в /wsgi/static/media? @DanielRoseman   -  person Roger Gonzalez    schedule 23.02.2016
comment
Нет, я не могу представить, почему вы хотите это сделать. Нет причин раскрывать детали вашей файловой системы в вашем URL-адресе. С какой точной проблемой вы столкнулись?   -  person Daniel Roseman    schedule 23.02.2016
comment
У меня есть форма, которая управляет загрузкой изображения в модели, которую я указал выше. Когда я пытаюсь показать изображение на шаблоне, он не находит изображение. Я предполагаю, что неправильно настроил некоторые конфигурации МЕДИА @DanielRoseman   -  person Roger Gonzalez    schedule 23.02.2016
comment
Хорошо, проблема в том, что файлы с MEDIA_URL не обслуживаются. Итак, вы где-нибудь настроили что-нибудь для этого?   -  person Daniel Roseman    schedule 23.02.2016
comment
Нет, это все, что у меня есть. Есть ли что-то еще, чтобы настроить? Я пытаюсь выполнить развертывание в OpenShift @DanielRoseman   -  person Roger Gonzalez    schedule 23.02.2016
comment
Прочтите документацию по статическим файлам. Django не несет ответственности за их обслуживание в производстве.   -  person Daniel Roseman    schedule 23.02.2016


Ответы (1)


Я решил это, изменив MEDIA_URL:

MEDIA_URL = '/static/media/'

Теперь работает безотказно. Я надеюсь, что это поможет кому-то другому.

person Roger Gonzalez    schedule 24.02.2016