访问静态文件

动态web应用也会需要静态文件,通常是 CSS 和 JavaScript 文件。

理想状况下,你已经配置好Web服务器来提供静态文件,但是在开发中,Flask 也可以做到。
只要在你的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。

默认情况下:无需手动写路由,static 文件夹里所有文件都可以直接访问。

给静态文件生成 URL,使用特殊的 'static' 端点名:

如果你像获取一个静态文件的路径,可以用url_for 函数。

url_for('static', filename='style.css')Code language: JavaScript (javascript)

这个文件应该存储在文件系统上的 static/style.css

  1. 目录规范
    项目根目录必须新建文件夹,名称固定为 static,存放css、js、图片、字体等静态资源。
项目目录
├── app.py
└── static
    ├── style.css
    ├── main.js
    └── images
        └── logo.pngCode language: CSS (css)
  1. 访问方式
  • 浏览器直接访问:http://127.0.0.1:5000/static/style.css
  • 代码中使用 url_for 生成地址
# css文件
url_for('static', filename='style.css')
# 子文件夹中的图片
url_for('static', filename='images/logo.png')Code language: PHP (php)
  1. html模板中
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<script src="{{ url_for('static', filename='main.js') }}"></script>
<img src="{{ url_for('static', filename='images/logo.png') }}">Code language: HTML, XML (xml)
  • 文件夹名字必须是static,Flask默认识别,不能随意改名;
  • 生产环境正式部署时,一般使用Nginx/Apache处理静态文件,不依靠Flask程序提供;
  • filename 参数填写文件相对于static文件夹的路径。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注