本周第一次将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/
答案 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可以读取(写入和执行)静态文件,这可以解决您的问题。