python - 亚马逊网络服务 (AWS) 上的 Django

标签 python django amazon-web-services amazon-ec2 amazon-elastic-beanstalk

我已阅读这些教程: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

我使用 Django 1.8.2,亚马逊的文档似乎有点过时(他们仍然使用 django-admin.py 而不是 django-admin),并且它的某些部分不起作用(当东西不工作时工作,我回退到 realpython 链接一)。

所以,除了我的管理页面不加载静态文件外,我的一切都正常工作。因此,未加载 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'). 

但是还是不行。

这是我的 eb 配置文件:

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

我在进行更改后使用了 eb deploy 命令。

我需要执行额外的步骤吗?我在这里读过:Default Django 1.5 admin css not working我需要更改别名,但它适用于 Apache。

我还阅读了 django 文档文件,例如 https://docs.djangoproject.com/en/1.8/howto/static-files/但我不确定要在 AWS 的 STATIC_ROOT 中放入什么

非常感谢任何帮助。谢谢

最佳答案

事实证明,“aws:elasticbeanstalk:container:python:staticfiles”将您的 EC2 实例 (/opt/python/current/app/static/) 目录中的文件映射到/static/

将 settings.py 中的 STATIC_ROOT 设置为 os.path.join(BASE_DIR, '..','static') 解决了这个问题

关于python - 亚马逊网络服务 (AWS) 上的 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30624104/

相关文章:

python-3.x - 如何在 Django Async View 中访问用户?

ios - aws dynamodb 如何在 ios 中使用对象映射器和批处理获取

amazon-web-services - Post Confirmation 不会触发 lambda 函数

Python-捕获子进程异常

Python:如何查看今年给定的月份和日期是否已经过去?

python - 超出最大递归深度 - Django

python - groupby 对象 pandas 的绝对值平均值

django - 每个用户自动递增 django 模型字段

Python:在没有 setlocale() 的情况下访问 Posix 的语言环境数据库

amazon-web-services - 在另一个账户中担任角色后恢复到 AWS Lambda 执行角色