除了服务器生成的HTML外,Web应用程序通常还需要提供其他文件(例如图像,JavaScript或CSS),这些文件是呈现整个Web页面所必需的。在Django中,我们将这些文件称为“静态文件”。
对于小型项目来说,这没什么大不了的,因为您可以将静态文件保存在Web服务器可以找到的位置。但是,在较大的项目(尤其是由多个应用程序组成的项目)中,处理每个应用程序提供的多组静态文件变得很棘手。
这样做的目的django.contrib.staticfiles
是:它将每个应用程序(以及您指定的任何其他位置)中的静态文件收集到一个易于在生产中使用的位置。
首先,在目录static
中创建一个polls
目录。Django将在此处查找静态文件,类似于Django在内部查找模板的方式polls/templates/
。
Django的STATICFILES_FINDERS
设置包含一个查找器列表,这些查找器知道如何从各种来源发现静态文件。默认值之一是AppDirectoriesFinder
在每个中查找“静态”子目录 INSTALLED_APPS
,就像polls
我们刚刚创建的一样。管理站点对其静态文件使用相同的目录结构。
在static
您刚创建的目录中,创建另一个目录polls
,在其中创建一个名为的文件style.css
。换句话说,您的样式表应位于polls/static/polls/style.css
。由于AppDirectoriesFinder
staticfile finder的工作方式,您可以在Django中将此静态文件称为polls/style.css
,类似于引用模板路径的方式。
将以下代码放入该样式表(polls/static/polls/style.css
):
接下来,在顶部添加以下内容polls/templates/polls/index.html
:
该模板标签生成静态文件的绝对路径。{% static %}
这就是您要做的所有开发工作。
启动服务器(如果已经运行,则重新启动它):
$ python manage.py runserver
重新加载http://localhost:8000/polls/
,您应该看到问题链接为绿色(Django样式!),这意味着您的样式表已正确加载。
接下来,我们将为图像创建一个子目录。images
在polls/static/polls/
目录中创建一个子目录。在此目录中,放入名为的图像background.gif
。换句话说,将您的图片放在中 polls/static/polls/images/background.gif
。
然后,添加到样式表(polls/static/polls/style.css
):
重新加载http://localhost:8000/polls/
,您应该会在屏幕左上方看到加载的背景。
原文:https://www.cnblogs.com/leon-joker/p/13125320.html