@blackbb

Как правильно настроить media-root?

Есть проект на хостинге jino.ru. Проект лежит в папке django/project. Папки static и media вынесены из проекта и лежат в папке domains/mysite.ru/
в settings.py:
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
При добавлении к объекту новых изображений через админку, все изображения помещаются в папку media, но в проект ,т.е в django/project, а не в domains/mysite.ru/ и следовательно эти изображения не отображаются на сайте. Подскажите как с этим бороться.
В urls.py прописал urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()
  • Вопрос задан
  • 3537 просмотров
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
Я делал через линк директории django/project/static в domains/mysite.ru/static
Для media можно также
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
neatsoft
@neatsoft
Life is too short for bad software
MYSITE_URL = '<abs_path>/domains/mysite.ru'
STATIC_ROOT = os.path.join(MYSITE_URL, 'static')
MEDIA_ROOT = os.path.join(MYSITE_URL, 'media')

Но для production это не подходит. Каталог static нужно раздавать с помощью nginx (предварительно скомпоновав его с помощью python manage.py collectstatic), a media выносить на отдельный домен (для предотвращения XSS уязвимостей).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы