Django - 收集静态文件
处理静态文件
项目中的静态文件,例如样式表、JavaScript 和图像,在 DEBUG = False
时不会被 Django 自动处理。
当 DEBUG = True
时,这工作正常,我们只需将它们放在应用程序的 static
文件夹中即可。
当 DEBUG = False
时,静态文件必须在使用前被收集并放到一个指定的文件夹中。
收集静态文件
要收集项目所需的所有静态文件,首先在 settings.py
文件中指定 STATIC_ROOT
属性。
这指定了要收集静态文件的文件夹。
您可以随意命名文件夹,我们将它命名为 productionfiles
my_tennis_club/my_tennis_club/settings.py
:
.
.
STATIC_ROOT = BASE_DIR / 'productionfiles'
STATIC_URL = 'static/'
.
.
您可以手动创建此文件夹,并将项目的所有静态文件收集到此文件夹中,但 Django 有一个命令可以为您完成此操作。
py manage.py collectstatic
这将产生以下结果
131 个静态文件已复制到 'C:\Users\your_name\myworld\my_tennis_club\productionfiles'。
131 个文件?为什么这么多?这是因为 Django 自带的管理用户界面。我们希望在生产环境中保留此功能,它包含许多文件,包括样式表、字体、图像和 JavaScript。
my_tennis_club
members/
my_tennis_club/
productionfiles/
admin/
myfirst.css
示例应该有效
现在您已经收集了项目的静态文件,如果您已经安装了 WhiteNoise,那么来自添加静态文件章节的示例终于可以工作了。
启动服务器并查看结果
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>
运行示例 »