项目中的静态文件(例如样式表、JavaScript 和图片)在以下情况下不会由 Django 自动处理:DEBUG = False
。
什么时候DEBUG = True
,这很好用,我们所要做的就是将它们放入static
应用程序的文件夹。
什么时候DEBUG = False
,静态文件必须收集起来并放在指定的文件夹中才能使用。
要收集项目所需的所有静态文件,请首先指定STATIC_ROOT
属性在settings.py
文件。
这指定了您要在其中收集静态文件的文件夹。
您可以随意命名该文件夹,我们将命名它productionfiles
:
my_tennis_club/my_tennis_club/settings.py
:
.
.
STATIC_ROOT = BASE_DIR / 'productionfiles'
STATIC_URL = 'static/'
.
.
您可以手动创建此文件夹并收集项目的所有静态文件并将其放入此文件夹中,但 Django 有一个命令可以为您执行此操作:
py manage.py collectstatic
这将产生这样的结果:
131 static files copied to 'C:\Users\
your_name\myworld\my_tennis_club\productionfiles'.
131 个文件?为什么这么多?这是因为 Django 内置了管理用户界面。我们希望在生产中保留此功能,它附带了一大堆文件,包括样式表、字体、图片和 JavaScript。
my_tennis_club
members/
my_tennis_club/
productionfiles/
admin/
myfirst.css
现在您已经收集了项目的静态文件,如果您有安装了白噪音,示例来自添加静态文件章节终于可以工作了。
启动服务器,查看结果:
py manage.py runserver
并在您自己的浏览器中查看结果:127.0.0.1:8000/testing/
。
my_tennis_club/members/templates/template.html
:
{% load static %}
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="{% static 'myfirst.css' %}">
<body>
{% for x in fruits %}
<h1>{{ x }}</h1>
{% endfor %}
</body>
</html>
运行示例 »
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!