Django - 收集静态文件


处理静态文件

项目中的静态文件(例如样式表、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>
运行示例 »