Size: a a a

Django [ru] #STAY HOME

2019 July 30

DT

Dan Tyan in Django [ru] #STAY HOME
Алишер Маткурбанов
Всем привет!
Не отображаются изображения в django-admin на сервере. Использую связку nginx + gunicorn + django.
Судя по всему проблема в nginx конфиге, потому что на локалке все отображается нормально.

Nginx конфиг тут
https://pastebin.com/ve3rUk3t

Настройки медиа в проекте:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

PHOTO_DIR = os.path.join(BASE_DIR, "media_prod", "photos")
MEDIA_DIR = os.path.join(BASE_DIR, 'media_prod')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media_prod', 'photos')
MEDIA_URL = '/media_prod/photos/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_prod')
STATIC_URL = '/static_prod/'
AUTH_MODE = 'ldap'

PHOTO_URL = f'http://b2c.beeline.uz/route{MEDIA_URL}'


Пример ссылки на изображение:
http://mydomain.com/prod/media_prod/photos/photo_3235063_2019_07_29_17_32_26_029373.jpg
Что нужно в nginx дописать чтобы отображалось нормально?
а где настройка для media_prod
источник

АМ

Алишер Маткурбанов in Django [ru] #STAY HOME
Dan Tyan
а где настройка для media_prod
Какая именно?
источник

А

Алексей in Django [ru] #STAY HOME
Алишер Маткурбанов
Всем привет!
Не отображаются изображения в django-admin на сервере. Использую связку nginx + gunicorn + django.
Судя по всему проблема в nginx конфиге, потому что на локалке все отображается нормально.

Nginx конфиг тут
https://pastebin.com/ve3rUk3t

Настройки медиа в проекте:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

PHOTO_DIR = os.path.join(BASE_DIR, "media_prod", "photos")
MEDIA_DIR = os.path.join(BASE_DIR, 'media_prod')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media_prod', 'photos')
MEDIA_URL = '/media_prod/photos/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_prod')
STATIC_URL = '/static_prod/'
AUTH_MODE = 'ldap'

PHOTO_URL = f'http://b2c.beeline.uz/route{MEDIA_URL}'


Пример ссылки на изображение:
http://mydomain.com/prod/media_prod/photos/photo_3235063_2019_07_29_17_32_26_029373.jpg
Что нужно в nginx дописать чтобы отображалось нормально?
Кстати у меня тоже в проде медиа не грузится, тот же сетап, что может быть? В проде надо нгинксом передавать?
источник

АМ

Алишер Маткурбанов in Django [ru] #STAY HOME
Алексей
Кстати у меня тоже в проде медиа не грузится, тот же сетап, что может быть? В проде надо нгинксом передавать?
статика через nginx идет, полагаю изображения тоже нужно так. Только хз.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Алишер Маткурбанов
Какая именно?
у тебя в конфиге nginx

есть правило для
location /static_prod {
               root /home/sr/bots/route_project;
               expires 30d;
       }

а где для media_prod
источник

АМ

Алишер Маткурбанов in Django [ru] #STAY HOME
Dan Tyan
а где настройка для media_prod
В nginx добавить директиву?
источник

А

Алексей in Django [ru] #STAY HOME
А, а то я whitenoise использую, это плохо?
источник

АМ

Алишер Маткурбанов in Django [ru] #STAY HOME
Dan Tyan
у тебя в конфиге nginx

есть правило для
location /static_prod {
               root /home/sr/bots/route_project;
               expires 30d;
       }

а где для media_prod
Я писал вот так
location /media_prod {
               root /home/sr/bots/route_project/media_prod;
               expires 30d;
       }

Ничего не дало(
До куда root прописывать?
источник

А

Алексей in Django [ru] #STAY HOME
location /static {
   alias path/to/static;
}
Вот так можно whitenoise заменить?
источник

А

Алексей in Django [ru] #STAY HOME
Алишер Маткурбанов
Я писал вот так
location /media_prod {
               root /home/sr/bots/route_project/media_prod;
               expires 30d;
       }

Ничего не дало(
До куда root прописывать?
так location /media_prod надо
источник

АМ

Алишер Маткурбанов in Django [ru] #STAY HOME
Алексей
так location /media_prod надо
опечатался щас. так было в конфиге.
сейчас снова сделаю, релоадну nginx, проверю
источник

АМ

Алишер Маткурбанов in Django [ru] #STAY HOME
@dantyan добавил в конфиг
  location /media_prod {
               root /home/sr/bots/route_project/media_prod;
               expires 30d;
       }
ничего не произошло. ошибка 404

там в URLconf заметил такой URL
^media_prod/photos/(?P<path>.*)$

а ссылка выглядит так
http://mydomain.com/prod/media_prod/photos/photo_3235063_2019_07_29_17_32_26_029373.jpg

Может оно как-то влияет?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Алишер Маткурбанов
@dantyan добавил в конфиг
  location /media_prod {
               root /home/sr/bots/route_project/media_prod;
               expires 30d;
       }
ничего не произошло. ошибка 404

там в URLconf заметил такой URL
^media_prod/photos/(?P<path>.*)$

а ссылка выглядит так
http://mydomain.com/prod/media_prod/photos/photo_3235063_2019_07_29_17_32_26_029373.jpg

Может оно как-то влияет?
на серваке есть папка
/home/sr/bots/route_project/media_prod
а в ней папка photos
и в ней файл photo_3235063_2019_07_29_17_32_26_029373.jpg?
источник

АМ

Алишер Маткурбанов in Django [ru] #STAY HOME
да
источник

DT

Dan Tyan in Django [ru] #STAY HOME
location /prod/media_prod так попробуй
источник

Y

Your friend in Django [ru] #STAY HOME
Всем привет, столкнулся с ошибкой 405 put method not allowed. Дописал(скопировал) метод update и закинул его во вьюшку, однако метода put он в любом случае не видит. Как быть?
источник

Y

Your friend in Django [ru] #STAY HOME
источник

DT

Dan Tyan in Django [ru] #STAY HOME
пользователь авторизован ?
источник

Y

Your friend in Django [ru] #STAY HOME
Dan Tyan
пользователь авторизован ?
да, если бы был не авторизован выдавало бы 401
источник

Y

Your friend in Django [ru] #STAY HOME
Dan Tyan
пользователь авторизован ?
его даже нет в "allow" когда захожу на локалхост
источник