AWS elasticbean 不处理 Flask 静态资产
AWS elasticbean does not handles Flask static assets
我用 assets/static 个文件创建了简单的 flask 站点。上传到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
添加到上面的目录部分,打开urlhttp://xxx.xxx.us-west-2.elasticbeanstalk.com/static/
,然后查看我的静态文件夹的内容: css, js, lib
.
再检查一下:将文件 1.css
添加到静态根目录,在浏览器中作为目录打开,看到我的文件出现了。试图让它点击这个文件 - 再次得到 404!
既没有添加任何附加设置,也没有添加点文件。成功获取所有动态页面。
如何使用 EC2 处理静态文件?
Flask 提供到 (root_folder)/static
的路由,而您将 apache 配置指向 (root_folder)/mysite/static
的路由,而 Flask 找不到该位置的路由,因此 404'ing。
解决方案:
- 更改 Flask 的静态文件夹
- 将当前静态文件夹移动到
(root_folder)
解决方案简单而愚蠢:在定义 /static/
别名的配置部分中,我错过了尾部斜杠。
不正确:mysite/static
正确:mysite/static/
我用 assets/static 个文件创建了简单的 flask 站点。上传到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
添加到上面的目录部分,打开urlhttp://xxx.xxx.us-west-2.elasticbeanstalk.com/static/
,然后查看我的静态文件夹的内容: css, js, lib
.
再检查一下:将文件 1.css
添加到静态根目录,在浏览器中作为目录打开,看到我的文件出现了。试图让它点击这个文件 - 再次得到 404!
既没有添加任何附加设置,也没有添加点文件。成功获取所有动态页面。
如何使用 EC2 处理静态文件?
Flask 提供到 (root_folder)/static
的路由,而您将 apache 配置指向 (root_folder)/mysite/static
的路由,而 Flask 找不到该位置的路由,因此 404'ing。
解决方案:
- 更改 Flask 的静态文件夹
- 将当前静态文件夹移动到
(root_folder)
解决方案简单而愚蠢:在定义 /static/
别名的配置部分中,我错过了尾部斜杠。
不正确:mysite/static
正确:mysite/static/