elastic beanstalk - 应用程序返回 403 not found 静态文件错误
Posted
技术标签:
【中文标题】elastic beanstalk - 应用程序返回 403 not found 静态文件错误【英文标题】:elastic beanstalk - app is returning 403 not found error for static files 【发布时间】:2016-07-02 21:09:25 【问题描述】:本周第一次将 Django 应用程序部署到 Beanstalk,我成功部署了该应用程序,但是一些 static
文件返回 403 禁止错误。我正在使用作为依赖项安装的Django Rest Framework。大多数 403 的静态文件都来自 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】:在 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 授予读取(以及写入和执行)静态文件的权限,这应该可以解决您的问题。
【讨论】:
非常感谢。chmod
命令使用静态文件创建了我的 www 目录,我将其压缩并重新部署。以上是关于elastic beanstalk - 应用程序返回 403 not found 静态文件错误的主要内容,如果未能解决你的问题,请参考以下文章
在 AWS Elastic Beanstalk 和 EKS 上部署了一个 laravel 应用程序 相同的数据库 RDS 为啥在 Elastic Beanstalk 中获得快速响应
如何在 elastic-beanstalk 中应用 ruby 版本补丁