Size: a a a

Django [ru] #STAY HOME

2021 May 29

С

Серый in Django [ru] #STAY HOME
да , при отладке была прописанна строка urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)  urls.py  , стоит ли на боеврм прописывать и в плане безопасности чем это грозит ?
источник

S

Sergey in Django [ru] #STAY HOME
значит нужно сделать collectstatic и натравить nginx на исходящую директорию
источник

S

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

S

Sergey in Django [ru] #STAY HOME
доступно и понятно
источник

С

Серый in Django [ru] #STAY HOME
статика вся работает кроме media
источник

С

Серый in Django [ru] #STAY HOME
источник

S

Sergey in Django [ru] #STAY HOME
точно также поступить с медиа(выдать ей нужные права доступа), подставить в нжинксе
источник

С

Серый in Django [ru] #STAY HOME
хорошо сяду почитаю внимательно
источник

С

Серый in Django [ru] #STAY HOME
тут тоже надо прописывать папку media , подобно static ?
источник

S

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

S

Sergey in Django [ru] #STAY HOME
угу
источник

С

Серый in Django [ru] #STAY HOME
спасибо ща пробнем )
источник

С

Серый in Django [ru] #STAY HOME
спасибо все заработало.  Еще вопрос посмотрел мелько инструкцию по деплою на докере https://webdevblog.ru/kak-ispolzovat-django-postgresql-i-docker/  смотрю там используются определенные версии джанги и питона и значит нужно использовать при разработки эти версии ?
источник

С

Серый in Django [ru] #STAY HOME
или есть лучше инструкция развертывания на докере ?
источник

S

Sergey in Django [ru] #STAY HOME
```
# .gitignore
...
media/
...

# settings.py
...
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
if not DEBUG:
   # можно подставить MYAPP_MEDIA_ROOT='/var/www/myapp/media' например
   MEDIA_ROOT = os.getenv("MYAPP_MEDIA_ROOT", MEDIA_ROOT)
FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755
FILE_UPLOAD_PERMISSIONS = 0o644
...


# in the shell
export MYAPP_MEDIA_ROOT="${pwd}/media" или MYAPP_MEDIA_ROOT='/var/www/myapp/media' - абсолютный путь на директорию с медиа
sudo mkdir -p $MYAPP_MEDIA_ROOT
sudo usermod -a -G www-data $USER
sudo chgrp -R www-data $MYAPP_MEDIA_ROOT
sudo chmod 755 $(find $MYAPP_MEDIA_ROOT -type d)
sudo chmod 644 $(find $MYAPP_MEDIA_ROOT -type f)
echo $MYAPP_MEDIA_ROOT  # вывод и будет в django settings.py MYAPP_MEDIA_ROOT

# твой /etc/ngninx/sites-available/myapp.conf
server {
       ...
       location /media/ {
           # абсолютный путь MYAPP_MEDIA_ROOT
           root /var/www/myapp/media;  
       }

       location /static/  {
           # абсолютный путь STATIC_ROOT
           alias /home/ubuntu/myapp/static/;
       }

       location / {
           ...
       }
   }
   

# in the shell
# рестарт джанги
# рестарт нжинкса
sudo nginx -t && sudo service nginx reload

```
источник

С

Серый in Django [ru] #STAY HOME
0o644  так прописывается права в setting.py ?
источник

S

Sergey in Django [ru] #STAY HOME
da
источник

С

Серый in Django [ru] #STAY HOME
а как джанго узнает путь на боевом сервере ? где прописан путь
источник

С

Серый in Django [ru] #STAY HOME
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")   это же папка проекта
источник

S

Stanley in Django [ru] #STAY HOME
BASE_DIR
источник