Flask在AWS Elastic Beanstalk上将CSS文件呈现为空

时间:2018-11-28 06:28:41

标签: css flask amazon-elastic-beanstalk

我有一个flask应用程序,当我通过flask run在本地运行CSS时会加载CSS,但当我将其上传到AWS Elastic beantalk时却不会加载。

css-test-app /    application.py    requirements.txt    应用/       初始化 .py       route.py       静态的/          样式表/             style.css       模板/       index.html

我先设置export FLASK_APP=application.py,然后再设置flask run并将其部署到计算机上,然后再在浏览器中转到127.0.0.1:5000。

要将其上载到AWS Elastic beantalk上,我从app /,application.py和requirements.txt制作了一个zip文件,然后进行部署,该文件可以工作,但css文件除外。当我使用开发工具检查页面时,在源代码下它会在static / stylesheets / style.css中显示css文件的位置,但它为空。我在URL MyApp-env。********。us-west-2.elasticbeanstalk.com或mydomain.com上查看该网站

我的 init .py文件如下:

from flask import Flask
application = app = Flask(__name__)
from app import routes

app.static_folder = 'static'

application.py看起来像这样:

from app import application

我的模板index.html文件如下所示:

<html>
    <head>
        <link rel="stylesheet" href="{{ url_for('static', filename='stylesheets/style.css') }}" type="text/css" />
        <title>{{ title }} - Microblog</title>
    </head>
    <body>
        <h1>Hello, {{ user.username }}!</h1>
    </body>
</html>

style.css文件为:

body {
    color: purple;
    background-color: #d8da3d }

如果我通过chrome的ctrl-(重新加载此页面图标)刷新页面或执行ctrl f5,则不会更改任何内容。

如果我使用ebcli ssh进入beantalk实例,则比在/ opt / python / current / app /下找到该应用程序的所有文件,而在/ opt / python / current / app / app中找到css文件/static/stylesheets/style.css,其中包含全部内容。

1 个答案:

答案 0 :(得分:1)

在AWS中,您必须将静态文件的路径设置为app / static

在您的AWS控制台上,转到“配置”>“软件”>“修改”

向下滚动到“静态文件”。

您可能会在表的左侧,目录下的右侧看到/ static /,并提及app / static /

点击保存并重新加载您的应用。