Як підключити статику сайту на робочому сервері

  • Linux
  • Python
  • Django

Суть питання в заголовку. Встановлювати пробую на локальній машині з Ubuntu. Поки для виконання завдання зроблено по інструкції наступне:

Прописав в settings.py нову директорію для статики:
STATIC_ROOT = '/ opt / mag / static /'

Але коли намагаюся зібрати статику:
python manage.py collectstatic


Виконати ту ж команду через sudo - криве рішення: а якби у мене конкретно для цього проекту були особливі версії пакетів?

У проекті статика (як і в будь-якій папці всередині anton) розпаковується нормально.
Переходимо в папку з настройками nginx:
cd / etc / nginx / sites-available /

Відкриваємо файл default і вносимо наступне:

Результат в консолі:
(Mag_env) anton @ anton-X451CA:

Як бачите, статика все-таки не довантажити. При запуску проекту через python manage.py runserver проблеми зі статикою немає.
Що треба зробити?

Налаштував згідно з інструкцією і спробував тестувати обома варіантами по черзі:
gunicorn magazine_project.wsgi
gunicorn magazine_project.wsgi: application --bind 192.168.10.4:8000

Поетапно опишу, що відбувається, поки роблю все за інструкцією.

На старті вже є налаштований Django-проект, який справно працює через python manage.py runserver, так що пропускаю етап настройки оточення і додатки. Про всяк випадок зазначу:
STATIC_ROOT = os.path.join (BASE_DIR, 'static')

Отже, що я роблю по інструкції.

Створюю /etc/systemd/system/gunicorn.service і вношу туди наступні дані:


Дивно, але при цьому друга команда спрацювала без помилок:


Сподіваюся, такий результат і потрібен. До слова, в папці проекту з'явився файл magazine.sock.

Далі прописую команди:
sudo systemctl daemon-reload
sudo systemctl restart gunicorn

Після цього переходжу в / etc / nginx / sites_available і правлю файл default, вносячи такі параметри:


Створюю посилання в site_enabled:
sudo ln -s / etc / nginx / sites-available / default / etc / nginx / sites-enabled

sudo nginx -t показується, що всі enabled, successful і взагалі добре. Прописую інше:
sudo systemctl restart nginx
sudo ufw delete allow 8000
sudo ufw allow 'Nginx Full'

Ось і все, що я зробив. Статика все ще не працює, якщо намагатися пов'язати сайт зі своїм IP, а не з локальним хостом. Чого бракує?

все виявилося простіше. Не впевнений, що допомогло саме це, так як я багато чого робив за раз, але попзреваю, що вся справа вдобавленіі статики в urls.py

urlpatterns = [
url (r '^ admin /', admin.site.urls),
url (r '^ cart /', include ( 'shop_cart.urls', namespace = 'cart')),
url (r '^ order /', include ( 'orders.urls', namespace = 'orders')),
url (r '', include ( 'main_site.urls')),
] + Static (settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) \
+ static (settings.STATIC_URL, document_root = settings.STATIC_ROOT)

Раніше додавав тільки медіа.

Схожі статті