1.9 KiB
1.9 KiB
在 Flask 中提供静态文件
原文:https://overiq.com/flask-101/serving-static-files-in-flask/
最后更新于 2020 年 7 月 27 日
静态文件是不常改变的文件,例如,CSS 文件、JS 文件、字体文件等。默认情况下,Flask 会在应用目录内的static子目录中查找静态文件。我们可以通过在创建应用实例时将目录名传递给static_folder关键字参数来更改此默认值,如下所示:
app = Flask(__name__, static_folder="static_dir")
这会将静态文件的默认位置更改为应用目录内的static_dir目录。
目前,我们将坚持默认的static目录。在flask_app目录中创建一个名为static的目录。在static目录内创建一个 CSS 文件style.css,内容如下。
flask _ app/static/style . CSS
body {
color: red
}
回想一下,在第课【Flask basic】中,我们讨论过 Flask 会自动添加表单的路径/static/<filename>来处理静态文件。因此,我们需要为静态文件提供的只是使用url_for()函数创建网址,如下所示:
<script src="{{ url_for('static', filename='jquery.js') }}"></script>
输出:
<script src="/static/jquery.js"></script>
打开index.html模板,添加<link>标签如下(更改突出显示):
flask _ app/templates/index . html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
如果还没有运行就启动服务器,访问 http://localhost:5000/ ,应该会看到页面主体是红色的,如下图:
这里描述的服务静态文件的方法仅用于开发。在生产中,我们使用一个真实的网络服务器,如 Nginx 或 Apache 来服务静态文件。
