AWS elasticbean不处理Flask静态资产

时间:2016-04-19 13:47:06

标签: amazon-web-services amazon-ec2 flask static assets

我用资产/静态文件创建了简单的烧瓶网站。将其上传到EC2,服务器正确呈现模板,但静态文件绝对不可用。

我通过SSH连接并检查设置是否全部正确。应用程序根目录的路径为/opt/python/current/app/,即CSS文件/opt/python/current/app/mysite/static/css/stylesheet.css的完整路径。

在Web控制台中指定的相应别名并转移到Apache的wsgi.conf: Alias /static/ /opt/python/current/app/mysite/static <Directory /opt/python/current/app/mysite/static> Order allow,deny Allow from all </Directory> 试图获得至少CSS文件(http://xxx.xxx.us-west-2.elasticbeanstalk.com/static/css/stylesheet.css) - 得到404。

检查文件是否到位以及静态文件夹是否指向正确位置:将Options + Indexes添加到上面的目录部分,打开网址http://xxx.xxx.us-west-2.elasticbeanstalk.com/static/,然后查看我的静态文件夹的内容:css, js, lib

再检查一下:将文件1.css添加到静态根目录,在浏览器中作为目录打开,看看我的文件出现了。试图让它点击这个文件 - 再次获得404!

既没有添加任何其他设置,也没有添加dotfiles。成功检索所有动态页面。

如何使用EC2处理静态文件?

2 个答案:

答案 0 :(得分:0)

Flask提供到(root_folder)/static的路由,并且您将apache配置指向(root_folder)/mysite/static的路由,并且烧瓶无法找到此位置的路由,因此404。

解决方案:

  1. 更改Flask的静态文件夹
  2. 将当前静态文件夹移至(root_folder)

答案 1 :(得分:0)

解决方案简单而且愚蠢:在配置部分中/static/别名已定义,我错过了斜杠。

不正确:mysite/static

正确:mysite/static/