[英]Django on Amazon Web Service (AWS)
我已经阅读了这些教程: 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命令。
我需要做额外的步骤吗? 我在这里读到: 默认Django 1.5 admin css无法工作 ,我需要更改别名,但它是为apache。
我还读取了django doc文件,例如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')修复了问题
虽然你似乎已经解决了你的问题,但我遇到了类似的问题,但由于我的应用程序是从项目目录的根目录上传的,所以设置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
将命令更改为AWS Docs版本后,所有上述问题也得以解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.