Настройка Django, создание статических файлов
Теперь необходимо настроить наш проект для работы на сервере.
Для этого перейдём в директорию /var/www/mysite_03/mysite и отредактируем файл настроек settings.py:
cd /var/www/mysite_03/mysite
vi settings.py
Чтобы отредактировать файл в vi, необходимо переключить его из командного режима в режим редактирования нажатием клавиши I или Insert, в последней строке должна появится надпись -- INSERT --. Выход из режима редактирования осуществляется нажатием клавиши Esc.
Отредактируем эту строку:
ALLOWED_HOSTS = ['django-blog.my-domain.ru']
Примечание: django-blog.my-domain.ru необходимо заменить на ваше доменное имя.
И добавим следующие строки:
CSRF_TRUSTED_ORIGINS = ['http://django-blog.my-domain.ru', 'https://django-blog.my-domain.ru']
Примечание: django-blog.my-domain.ru необходимо заменить на ваше доменное имя.
STATIC_ROOT = BASE_DIR / 'static'
Сохраняем файл(Нажимаем Esc и вводим :wq, нажимаем Enter).
Затем отредактируем файл urls.py, выполняем:
vi urls.py
Добавим эту строку в конец файла:
+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Примечание: Gunicorn будет выдавать статичные файлы только при включенном режиме отладки(DEBUG = True) в файле settings.py. В дальнейшем, эта работа будет переложена на веб-сервер NGINX.
Теперь можно создать статичные файлы, для этого необходимо перейти в директорию проекта и создать директорию с именем static для статичных файлов:
cd ..
mkdir static
ls -la
А затем необходимо активировать виртуальное окружение:
source env/bin/activate
Запускаем процесс создания статичных файлов, выполняем:
python3 manage.py collectstatic
Проверяем результат:
ls -la static
ls -la static/admin
ls -la static/admin/img
Появились директории со статичными файлами.
Статичные файлы созданы, теперь можно деактивировать виртуальное окружение, выполним:
deactivate
И в дополнение ко всему сменим владельца директории media, чтобы была возможность загружать файлы через сайт.
chown -R www: media
ls -la
Теперь можно перезапустить службу Gunicorn, выполняем:
systemctl restart gunicorn
Проверяем результат, снова откроем наш сайт в браузере: http://<имя_вашего_домена>:8001:
Ошибка изменилась, но сайт так и не работает нормально - это потому что не установлена БД, установим её в следующем шаге.