除了由服务器产生的HTML外,web应用一般需要提供额外的文件,例如images(图片)
、JavaScript
或者CSS
,对于渲染完整的web页面非常必要。在Django中,我们把这些文件称之为"static files(即静态文件)"
对小的工程来说,你可以把静态文件放在你的web服务器能找到的任何地方。但是,在大一点的工程中,特别是包含多个应用的工程中,处理每个应用提供的多系列静态文件是非常不容易的。
那就是django.contrib.staticfiles
的作用:它将你每个应用的静态文件收集到一个单独的位置,在生产中很容易被使用。
自定义应用的外观和感觉
首先,在你的polls
目录下创建一个static
目录。Django将会在那里寻找静态文件,于Django寻找模版类似。
Django的STATICFILES_FINDERS
设置包含了一系列探测器,能够知道如何从各种资源中发现静态文件。其中一个默认是AppDirectoriesFinder
,它在每个INSTALLED_APPS
中寻早”static”子目录,就刚刚在polls中创建的。
在刚刚创建的static
目录中,创建另一个目录,名字是polls
,在这个目录中创建一个叫style.css
的文件。一句话,你的样式表是在polls/static/polls/style.css
这个目录下。
在样式表中编辑代码:
li a{
color:green;
}
现在,在polls/templates/polls/index.html
中添加下面的代码:
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css %}" />
讲解:{% load staticfiles %}
会从static files
模版库中加载{% static %}
模版标签。{% static %}
模版标签产生静态文件的绝对路径。
添加一个背景图片
下面,我们来为图片添加一个子目录。在polls/static/polls
目录下创建一个images
目录,在这个目录下,把background.gif
图片放进去。也就是将你的图片放在polls/static/polls/images/background.gif
。然后添加到你的样式表中:
body{
background:white url("images/background.gif") no-repeat right bottom";
}