第一个Django应用-6

一个典型的web应用,除了最基础的html文件,通常还需要一些其他的文件,例如css文件或者JavaScript文件来辅助完成一些前端功能。Django把这些文件统一归类为静态文件。本章节将介绍Django是如何管理和使用静态文件的。

在django中,这些静态文件是通过django.contrib.staticfiles这个组件来管理的。下面就通过一个小小的实例来讲解应该怎么用

首先要做的是创建存放静态文件的目录,类似于template,Django默认也会从当前app的目录下的static(polls/static)目录下寻找静态文件并且也是在找到第一个名字匹配的文件就停止寻找.

Django提供了STATICFILES_FINDERS这个配置项来允许我们定制如何搜寻静态文件。其中默认的AppDirectoriesFinder这个组件就是从当前app目录的static目录来搜寻静态文件。

讲完了在哪里存静态文件,下面我们来创建一个静态文件。创建文件polls/static/polls/style.css并填入以下代码

li a {
    color: green;
}

编辑polls/templates/polls/index.html,在head标签内加入以下代码

{% load static %}

<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" />

static这个标签会自动生成静态文件的url,对于开发调试来说,到这里就已经可以正确的使用这些静态文件了

重启开发服务器,访问http://localhost:8000/polls/, 如果看到所有的question的链接都变成了绿色,那么证明我们的程序是正常工作的

下一个例子我们将演示添加背景图片

新建目录polls/static/polls/images并把background.gif放到该目录下(polls/static/polls/images/background.gif),编辑polls/static/polls/style.css,加入以下代码

body {
    background: white url("images/background.gif") no-repeat right bottom;
}

重新载入页面http://localhost:8000/polls/, 如果程序正常工作,我们将会看到背景图片

本节介绍了Django如何管理静态文件,更多详情参见后续django详解部分