静态文件
静态文件,顾名思义,就是那些不会被改变的文件,比如图片,CSS 文件和 JavaScript 源码文件。默认情况下,Flask 在程序根目录中名为 static 的子目录中寻找静态文件。因此,我们一般在应用的包中创建一个叫 static 的文件夹,并在里面放置我们的静态文件。比如,我们可以按下面的结构组织我们的 app:
1. app/
2. __init__.py
3. static/
4. css/
5. style.css
6. home.css
7. admin.css
8. js/
9. home.js
10. admin.js
11. img/
12. favicon.co
13. logo.svg
14. templates/
15. index.html
16. home.html
17. admin.html
18. views/
19. models/
20. run.py
但是,我们有时还会应用到第三方库,比如 jQuery, Bootstrap 等,这时我们为了不跟自己的 Javascript 和 CSS 文件混起来,我们可以将这些第三方库放到 lib 文件夹或者 vendor 文件夹,比如下面这种:
1. static/
2. css/
3. lib/
4. bootstrap.css
5. style.css
6. home.css
7. admin.css
8. js/
9. lib/
10. jquery.js
11. chart.js
12. home.js
13. admin.js
14. img/
15. logo.svg
16. favicon.ico
提供一个 favicon 图标
favicon 是 favorites icon 的缩写,也被称为 website icon(网页图标)、page icon(页面图标)等。通常而言,定义一个 favicon 的方法是将一个名为『favicon.ico』的文件置于 Web 服务器的根目录下。但是,正如我们在上面指出,我们一般将图片等静态资源放在一个单独的 static 文件夹中。为了解决这种不一致,我们可以在站点模板的 部分添加两个 link 组件,比如我们可以在 template/base.html 中定义 favicon 图标:
1. {% block head %}
2. {{ super() }}
3. <link rel="shortcut icon" href="{{ url_for('static', filename = 'favicon.ico') }}" type="image/x-icon">
4. <link rel="icon" href="{{ url_for('static', filename = 'favicon.ico') }}" type="image/x-icon">
5. {% endblock %}
在上面的代码中,我们使用了 super() 来保留基模板中定义的块的原始内容,并添加了两个 link 组件声明图标位置,这两个 link 组件声明会插入到 head 块的末尾。
