Amazon Elastic Beanstalk not serving django static files

后端 未结 8 2235
你的背包
你的背包 2021-02-18 19:40

I am trying to put up a simple django app on elastic beanstalk. I thought I had the static parts of the app figured out as it works with heroku and on a server that was set up

8条回答
  •  半阙折子戏
    2021-02-18 19:58

    To support multiple apps and do this you need to run collectstatic

    Settings.py

    STATIC_ROOT = os.path.join(BASE_DIR, "static")
    

    Make sure you have a folder called "static" in your root

    In your ebs config file eg. (02_python.config or similar)

    option_settings:
        ...
        "aws:elasticbeanstalk:container:python:staticfiles":
            /static/: "static/"
    

    Then before you upload to ebs run python manage.py collectstatic

    This collects all the static files in one folder which you have already pointed to in your config.

    Then you can run eb deploy like normal

    Opptionally if you don't want to commit the static files to your source control twice and want the server to do this for you add this to your config

    container_commands:
    01_collectstatic:
        command: "source /opt/python/run/venv/bin/activate && python manage.py collectstatic --noinput"
    

    So your file should look something like this:

    container_commands:
    01_collectstatic:
      command: "source /opt/python/run/venv/bin/activate && python manage.py collectstatic --noinput"
    
    
    option_settings:
        "aws:elasticbeanstalk:container:python":
          WSGIPath: app/wsgi.py
        "aws:elasticbeanstalk:container:python:staticfiles":
          /static/: "static/"
    

    This will run collect static for you when you run eb deploy

提交回复
热议问题