5

Tôi đã đọc những hướng dẫn: 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.htmlDjango trên Amazon Web Service (AWS)

tôi sử dụng Django 1.8.2 và có vẻ như doc của amazon là một chút lỗi thời (họ vẫn sử dụng django-admin. py thay vì django-admin), và một số phần của nó không hoạt động (khi công cụ không hoạt động, tôi dự phòng cho liên kết realpython một).

Vì vậy, tôi đã làm tất cả đều hoạt động ngoại trừ trang quản trị của tôi không tải các tệp tĩnh. Vì vậy, tệp css không được tải.

Đây là settings.py của tôi:

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

tôi cũng đã cố gắng sử dụng:

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

nhưng nó vẫn không hoạt động.

đây là eb tập tin cấu hình của tôi:

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/" 

tôi đã sử dụng eb lệnh triển khai sau khi thực hiện các thay đổi.

Tôi có cần thực hiện thêm các bước nào không? Tôi đã đọc ở đây: Default Django 1.5 admin css not working rằng tôi cần phải thay đổi bí danh, nhưng nó là dành cho apache.

Tôi cũng đọc từ file django doc như https://docs.djangoproject.com/en/1.8/howto/static-files/ nhưng im không chắc chắn về những gì để đặt vào STATIC_ROOT cho AWS

bất kỳ giúp đỡ được nhiều đánh giá cao. Cảm ơn

Trả lời

3

Hóa ra "AWS: elasticbeanstalk: container: python: staticfiles" file bản đồ trong thư mục của bạn trên EC2 của bạn (/ opt/python/hiện tại/app/static/) đến/static/

cài đặt STATIC_ROOT trong settings.py tới os.path.join (BASE_DIR, '..', 'static') đã khắc phục sự cố

3

Mặc dù dường như bạn đã giải quyết được vấn đề của mình nhưng tôi đã gặp sự cố tương tự, nhưng vì ứng dụng đã được tải lên từ thư mục gốc của thư mục dự án, thiết lập STATIC_ROOT = os.path.join(BASE_DIR, '..','static') không hoạt động.

Thay đổi container_commands tuân theo AWS Documents đã làm các trick

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

Trước đó, sau đó cùng một hướng dẫn Tôi đã có những vấn đề sau

Lệnh createsu không hoạt động.

Chạy

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

Bằng cách nào đó chỉ vào một vị trí lẻ

Bạn đã yêu cầu để thu thập các tập tin tĩnh tại điểm đến vị trí theo quy định tại các thiết lập của bạn: /opt/python/bundle/2/app/static

Tất cả các vấn đề trên cũng được giải quyết sau khi thay đổi đồng mmands đến phiên bản AWS Documents.

Các vấn đề liên quan