Django 静态文件的加载顺序
Django 加载静态文件的顺序如下:
-
先从 app 目录中找到静态文件,这个目录默认是
app_name/static/app_name/
,其中app_name
是你的应用程序名称。例如,如果你的应用程序名称是blog
,那么静态文件的目录应该是blog/static/blog/
。 -
如果 Django 没有找到相应的文件,就会去查找所有第三方应用程序的静态文件。这些文件默认位于
project_name/static/
目录下,其中project_name
是你的 Django 项目名称。 -
如果文件还是没有找到,则会去查找
django.contrib.staticfiles
应用程序中的静态文件,这个目录的默认路径是django/contrib/staticfiles/static
。 -
最后,如果还是找不到文件,就会抛出
TemplateDoesNotExist
异常。
下面是一个简单的演示,假设我们在应用程序中有一个名为 index.html
的模板,同时静态文件目录下有一个名为 style.css
的样式文件。
首先,我们定义一个视图,它会渲染模板,并将模板中渲染方法需要的上下文传递给模板:
from django.shortcuts import render def index(request): context = {'site': 'pidancode.com'} return render(request, 'index.html', context)
接着,我们来看一下 index.html
模板的代码,其中包含了一个 link
标签,用于加载 style.css
样式文件:
{% load static %} <!DOCTYPE html> <html> <head> <title>{{ site }}</title> <link rel="stylesheet" type="text/css" href="{% static 'style.css' %}"> </head> <body> <p>Hello, Django!</p> </body> </html>
注意到我们使用了 load
标签加载了静态文件相关的模板标签。然后,在样式文件链接中使用了 {% static 'style.css' %}
,这个模板标签会自动获取正确的文件路径。
最后,我们需要在静态文件目录下创建 style.css
文件,并添加一些样式规则,比如设置 p
元素的颜色为红色:
p { color: red; }
这样,我们就完成了一个简单的静态文件的加载顺序的演示。
相关文章