在Elastick beantalk中提供静态文件

时间:2020-07-24 03:16:02

标签: python amazon-web-services flask amazon-elastic-beanstalk

我正在aws elasitc beantalk(Amazon Linux 2平台)中部署python3 flask应用程序。文件夹结构如下:

1    d
2    h
0    c
3    k
4    n
dtype: object

在模板文件中,静态资源的导入被污染为: 即JS文件:

|-app/
|-templates/
|-static/
|   |-css/
|   |-js/
|-app.py

在EB配置中,我定义了如下静态资源

enter image description here

但是问题是,这些资源没有加载并提供404。 即:<script type="text/javascript" src="{{ url_for('static', filename='js/jquery.js') }}"></script> 无法加载。但是,如果我尝试https://example.com/static/js/jquery.js,它会起作用。

我做错了配置吗?

1 个答案:

答案 0 :(得分:1)

基于评论。

此问题是由于覆盖 /static路径引起的。在python EB环境中,/static的路径是used by default,用于存储静态内容:

通过默认,Python环境中的代理服务器在 / static路径处为名为static的文件夹中的所有文件提供服务。例如,如果您的应用程序源在名为static的文件夹中包含一个名为logo.png的文件,则代理服务器通过subdomain.elasticbeanstalk.com/static/logo.png将其提供给用户。您可以按照本节中的说明配置其他映射

解决方案是使用默认设置并删除覆盖。