在 Flask 中,静态文件是指不需要动态生成的文件,例如样式表 (CSS)、JavaScript 文件、图像等。这些文件通常位于应用的 static 文件夹中,并可以通过特定的 URL 路径访问。以下是关于 Flask 静态文件的基本概念:
1. 静态文件夹
在你的 Flask 应用中,可以创建一个名为 static 的文件夹,用于存放静态文件。目录结构通常如下:
your_flask_app/
Flask 静态文件
|-- static/
| |-- css/
| | |-- style.css
| |-- js/
| | |-- script.js
| |-- img/
| |-- image.jpg
|-- templates/
| |-- index.html
|-- app.py
在这个例子中,static 文件夹包含了 css、js 和 img 子文件夹,分别用于存放样式表、JavaScript 文件和图像。
2. 链接静态文件
在模板中,可以使用 url_for 函数来生成静态文件的 URL。例如,在 index.html 模板中链接一个样式表:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
<title>My Flask App</title>
</head>
<body>
<!-- 页面内容 -->
</body>
</html>
在这个例子中,url_for('static', filename='css/style.css') 生成了样式表的完整 URL。
3. 静态文件路由
Flask 在默认情况下会自动处理 /static 路径下的静态文件。这意味着你无需显式定义路由来处理这些文件。例如,如果有一个样式表文件 style.css 存放在 static/css 文件夹中,用户可以通过访问 /static/css/style.css 来获取这个文件。
4. 静态文件版本控制
为了解决浏览器缓存问题,可以使用 Flask 提供的 url_for 函数的 rev 参数。这会自动在 URL 中添加一个文件的最后修改时间戳,以确保在文件更新时浏览器获取最新版本。
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css', rev=True) }}">
在这个例子中,rev=True 将为 style.css 生成一个包含最后修改时间戳的 URL。
这些是关于在 Flask 中处理静态文件的基本概念。通过将静态文件放置在 static 文件夹中,并使用 url_for 函数链接它们,你可以轻松地在你的应用中使用样式表、脚本和图像等静态资源。
转载请注明出处:http://www.zyzy.cn/article/detail/7304/Flask