5

Я прочитал эти учебники: https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-beanstalk/ и http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.htmlДжанго на Amazon Web Service (AWS)

Я использую Django 1.8.2 и кажется, что документ Амазонии является немного устаревшей (они до сих пор используются Джанго-администратора. py вместо django-admin), и некоторые его части не работают (когда материал не работает, я возвращаюсь к realpython link one).

Итак, я получил все это, за исключением того, что моя страница администратора не загружает статические файлы. Таким образом, файл css не загружается.

Это мой settings.py:

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static/') 

я также пытался использовать:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
STATIC_ROOT = os.path.join(BASE_DIR, 'static'). 

, но он по-прежнему не работает.

это мой Е.Б. конфигурационный файл:

container_commands: 
    01_migrate: 
    command: "source /opt/python/run/venv/bin/activate && python papp/manage.py migrate --noinput" 
    leader_only: true 
    02_createsuperuser: 
    command: "source /opt/python/run/venv/bin/activate && python papp/manage.py createsu" 
    leader_only: true 
    03_collectstatic: 
    command: "source /opt/python/run/venv/bin/activate && python papp/manage.py collectstatic --noinput" 

    option_settings: 
    "aws:elasticbeanstalk:application:environment": 
     DJANGO_SETTINGS_MODULE: "papp.settings" 
     PYTHONPATH: "/opt/python/current/app/papp:$PYTHONPATH" 
    "aws:elasticbeanstalk:container:python": 
     WSGIPath: "papp/papp/wsgi.py" 
    "aws:elasticbeanstalk:container:python:staticfiles": 
     "/static/": "static/" 

Я использовал команду Е.Б. развертывания после внесения изменений.

Есть ли дополнительные шаги, которые мне нужно сделать? Я читал здесь: Default Django 1.5 admin css not working, что мне нужно изменить псевдоним, но это для apache.

Я также читал из Джанго DOC файлов, таких как https://docs.djangoproject.com/en/1.8/howto/static-files/, но им не уверены в том, что ставить в STATIC_ROOT для AWS

любая помощь очень ценится. Благодаря

ответ

3

Оказывается "AWS: elasticbeanstalk: контейнер: Python: staticfiles" карты файлы в каталоге на вашем экземпляре EC2 (/ Opt/питон/ток/приложение/статический/) в/статический/

настройка STATIC_ROOT в settings.py на os.path.join (BASE_DIR, '..', 'static') исправлена ​​проблема

3

Хотя вы, похоже, решили свою проблему, у меня была аналогичная проблема, но поскольку моя приложение загружалось из корня каталога проекта, установка STATIC_ROOT = os.path.join(BASE_DIR, '..','static') не работала.

Изменение container_commands придерживаться AWS Docs сделал трюк

container_commands: 
    01_migrate: 
    command: "django-admin.py migrate" 
    leader_only: true 
    02_collectstatic: 
    command: "django-admin.py collectstatic --noinput" 
    leader_only: true 

Перед этим, следуя в том же учебнике я получил следующие вопросы

Команда createsu не работает.

Запуск

$ eb ssh 
$ /opt/python/run/venv/bin/python manage.py collectstatic 

Как-то указал на нечетном месте

Вы запросили, чтобы собрать статические файлы в целевом месте, как указано в настройках: /opt/python/bundle/2/app/static

Все вышеперечисленные проблемы были также решены после изменения co mmands в версию AWS Docs.

Смежные вопросы