弹性beanstalk - 应用程序返回403找不到静态文件的错误

时间:2016-03-16 19:14:29

标签: python django django-rest-framework elastic-beanstalk

本周第一次将Django应用程序部署到Beanstalk并成功部署了应用程序,但是一些static文件返回403禁止错误。我正在使用Django Rest Framework作为依赖项安装。大多数403-ing的静态文件来自Django Rest软件包。

这是我在日志中看到的内容

[Wed Mar 16 18:37:03.034730 2016] [authz_core:error] [pid 8842] [client 172.31.40.112:57965] AH01630: client denied by server configuration: /static, referer: {APPURL}.elasticbeanstalk.com/

settings.py中的静态属性

 STATIC_URL = '/static/'

django.config

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: hungryapp/wsgi.py   
  aws:elasticbeanstalk:container:python:staticfiles:
    /static/: /static/  

1 个答案:

答案 0 :(得分:1)

在django中,您可以对来自STATICFILES_DIRS变量中指定的不同目录的所有静态文件进行分组。

有一个名为python manage.py collectstatic的命令,它执行上述复制STATICFILES_DIRS中所有静态文件的工作,以及与管理面板相关的静态文件,在本例中是与Rest Framework相关的静态文件。所有静态文件都将复制到您在django设置文件中提到的STATIC_ROOT目录。

现在你必须确定两件事:

1) You run the python manage.py collectstatic command
2) Do a chmod -R 777 /path/to/static_root

您收到403因为Web服务器无法访问您的静态文件,因为它被拒绝读取该文件的权限。执行chmod 777可以读取(写入和执行)静态文件,这可以解决您的问题。