我用资产/静态文件创建了简单的烧瓶网站。将其上传到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处理静态文件?
答案 0 :(得分:0)
Flask提供到(root_folder)/static
的路由,并且您将apache配置指向(root_folder)/mysite/static
的路由,并且烧瓶无法找到此位置的路由,因此404。
解决方案:
(root_folder)
答案 1 :(得分:0)
解决方案简单而且愚蠢:在配置部分中/static/
别名已定义,我错过了斜杠。
不正确:mysite/static
正确:mysite/static/