文章目录
本次教程我们将添加样式表和图片。
出了服务器生成的HTML,web应用通常还需要提供其他的一些文件——比如图片、Javascript脚本、以及CSS,这些都是渲染整个网页所必须的。在Django中,我们把这些文件叫做静态文件。
对于一个小的项目,这不是一个大事情,因为你可以把这些静态文件放在某个你的服务器可以访问到的地方。但是,在大型项目中,特别是那些包含多个应用,处理每个应用所包含的多组的静态文件就有点棘手了。
django.contrib.staticfiles就是来做这个事情的:它把你的每一个应用中(或其他你指定的位置)搜集的静态文件,存放到一个易于访问的位置。
自定义应用的外观和体验
首先,在polls目录下创建一个名为static的目录。Django将在这理寻找静态文件,这跟模版很相似。
Django的STATICFILES_FINDERS 设置,包含查找位置的列表,它知道如何从众多的源码中发现静态文件。 一个默认的查找路径就是每个INSTALLED_APPS目录下的“static”子目录。管理员站点也使用同样的目录结构来存放静态文件。
在static目录中,创建名为polls的目录,并创建一个名为style.css的文件。
换句话说,你的样式表目录就是 polls/static/polls/style.css.根据应用目录查找器查找静态文件的工作原理,在Django中你可以简单滴以 polls/style.css的形式访问该静态文件,这也跟你访问模版文件是类似的。
为样式表添加内容:
li a {
color: green;
}
在模版index.html中添加如下代码:
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}">
{% static %}模版标记生成静态文件的绝对URL路径。
重启服务器,查看效果。
***容易出错的地方***
1、目录一定要正确,不然可能没效果:polls/static/polls/style.css
2、添加静态文件、修改好代码之后,必须要重新启动服务器
添加背景图
背景图的路径一定要看清楚:
polls/static/polls/images/background.gif.
修改css,使用背景图:
body {
background: white url("images/background.gif") no-repeat;
}
同样必须要重新启动服务器。
注意:
{% static %} 模版标签是不能在静态文件中使用的,就好比样式表不能通过Django生成。你应该总是使用相对路径来链接你的静态文件,这样你就是通过修改STATIC_URL设置,而不是去修改静态文件路径分支来改变你所连接的静态文件。
以上这些都是最基本的。
更多详情请查看the static files howto 以及 the staticfiles reference. 而Deploying static files 讨论如何在真实服务器中使用静态文件。