Как исправить проект Django, развернутый в AWS EC2, но CSS и фотографии не работают - PullRequest
0 голосов
/ 31 марта 2019

Я разработал свой проект в localhost, все работает.Затем я перенес проект на github и, наконец, клонировал его на своем сервере AWS EC2 Ubuntu.Это сайты публичного IP: http://3.16.1.224.В указанном общедоступном IP-адресе отображается все мое содержимое, за исключением изображений и CSS.Я попытался войти в админ-панель, но тоже самое, без CSS и изображений.

Моя структура папок такая:

jangooCMS
 accounts  /* an app for user creation */
 articles  /* an app for article creation */
 assets    
   logo-jangoo.png
 db.sqlite3
 jangooCMS  /* my main app */
   settings.py
   urls.py
   views.py
   wsgi.py
 manage.py
 media   /* all the articles images inside here */
   4-kitties-low.jpg
 requirements.txt
 templates
   base-layout.html

Now my base-layout.html have this on top:
    {% load static from staticfiles %}


Теперь перейдем к моим AWS, моим настройкам.py ниже:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'assets'),
)

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR,'media')

STATIC_ROOT = os.path.join(BASE_DIR, "assets/")

Пожалуйста, помогите .. мой первый раз, чтобы опубликовать здесь.Спасибо!

Это инструкция, которой я следовал при развертывании моего проекта с github на AWS EC2:

cd Downloads/
mv blogoo.pem ~/Desktop/
cd ..
cd desktop

chmod

ssh

yes

sudo apt-get update
sudo apt-get install python3-pip python3-dev nginx git

Y

sudo apt-get update
sudo pip3 install virtualenv 
git clone https://github.com/madonnadevt/jangooCMS.git
cd jangooCMS
virtualenv venv
source venv/bin/activate
pip3 install -r requirements.txt
pip3 install django bcrypt django-extensions
pip3 install gunicorn
cd jangooCMS
sudo vim settings.py


# Inside settings.py modify these lines allowed host public IP address I for INSERT

i


ALLOWED_HOSTS = ['3.16.1.224']

# add the line below to the bottom of the file

STATIC_ROOT = os.path.join(BASE_DIR, "assets/")

Save your changes and quit. ESC :wq

cd .. 
python manage.py collectstatic
gunicorn --bind 0.0.0.0:8000 jangooCMS.wsgi:application

ctrl+c

sudo vim /etc/systemd/system/gunicorn.service

i

[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/jangooCMS
ExecStart=/home/ubuntu/jangooCMS/venv/bin/gunicorn --workers 3 --bind unix:/home/ubuntu/jangooCMS/jangooCMS.sock jangooCMS.wsgi:application
[Install]
WantedBy=multi-user.target

ESC :wq

deactivate

(directory should be in ubuntu)
sudo systemctl daemon-reload
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
sudo vim /etc/nginx/sites-available/jangooCMS

i

server {
  listen 80;
  server_name 3.16.1.224;
  location = /favicon.ico { access_log off; log_not_found off; }
  location /static/ {
      root /home/ubuntu/jangooCMS;
  }
  location / {
      include proxy_params;
      proxy_pass http://unix:/home/ubuntu/jangooCMS/jangooCMS.sock;
  }
}

ESC :wq

sudo ln -s /etc/nginx/sites-available/jangooCMS /etc/nginx/sites-enabled
sudo nginx -t
sudo rm /etc/nginx/sites-enabled/default
sudo service nginx restart


1 Ответ

0 голосов
/ 31 марта 2019

Ваш веб-сайт запрашивает http://13.59.50.215/static/styles.css - обратите внимание на путь static/ - и он не находит его.Это потому, что вы объявили имя папки как assets в вашем settings.py:

STATIC_ROOT = os.path.join(BASE_DIR, "assets/")

И в конфигурации nGinx вы называете его static/

 location /static/ {
  root /home/ubuntu/jangooCMS;
 }

Так, чтобы исправить это, гораздо предпочтительнее использовать

STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...