【发布时间】:2016-04-01 06:12:46
【问题描述】:
我的本地机器是一个带有 Python 2.7 virtualenv 的虚拟 CeontOS-7,其中包含一个 Flask 应用程序目录,结构如下:
/var
/www
/myAppenv
/myApp
/.ebextensions
myApp-env.config
/.elasticbeanstalk
application.py
requirements.txt
/flaskApp
/core
views.py
models.py
forms.py
/templates
/static
然后我使用 EB CLI 将其从 /myApp 部署到名为 myApp 的 Beanstalk 应用程序,并使用名为 myApp-env 的环境。
我认为静态文件路径设置在 /.ebextensions/myApp-env.config 中:
option_settings:
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "flaskApp/static/"
我可以在 AWS Web 控制台-> 环境-> 配置-> 软件配置中看到
StaticFiles: /static/=flaskApp/static/
所以路径设置似乎不是问题的原因。
所以当我打开我的应用程序的网页时,我看到页面缺少 css 和 js,因为静态目录中的所有内容都会收到 403 禁止响应:
GET http://myApp-dev.elasticbeanstalk.com/ [HTTP/1.1 200 OK 174ms]
GET http://myApp-dev.elasticbeanstalk.com/static/bootstrap-3.3.5-dist/js/bootstrap.min.js [HTTP/1.1 403 Forbidden 55ms]
...
猜测这是关于权限的问题,因为在我的本地目录中,文件归我的 linux 帐户所有(出于 samba 原因),然后我尝试 chown root 和 chgrp root(静态目录和文件权限为 755),但它没有不要改变任何东西。实际上,我认为与防火墙/selinux 没有任何关系,因为主页实际上正在加载。
有人知道如何解决这个问题吗?
【问题讨论】:
标签: python amazon-web-services flask amazon-elastic-beanstalk http-status-code-403