如果DEBUG = False,为什么Django不加载静态文件?

时间:2019-02-07 04:52:18

标签: django

我的CSS没有加载,然后我将DEBUG更改为True,并且它起作用了。

我的问题是,如果我有一个实际的服务器并且DEBUG = False,则CSS不会加载。

DEBUG设置与静态文件有什么关系?无论DEBUG是True还是False,它都应该加载静态文件。

2 个答案:

答案 0 :(得分:2)

在调试模式下,Django将为您提供所有服务,因此您不必费心诸如Apache / Nginx之类的任何事情。

在生产模式下,使用Python提供静态内容会浪费资源,并且Django假定您将设置一个Web服务器来提供静态内容。参见:

尤其是

答案 1 :(得分:2)

您可以使用(docs)在DEBUG=False中提供静态变量(在Production Server中不推荐使用):

python manage.py runserver --insecure

此外,您可以使用whitenoise投放静态内容。为此,您需要通过pip install whitenoise安装它,然后在您的设置中添加一个新的中间件,如下所示:

MIDDLEWARE = [
  # 'django.middleware.security.SecurityMiddleware',
  'whitenoise.middleware.WhiteNoiseMiddleware',
  # ...
]

使用白噪声是安全的,并且提供了许多标准的静态文件服务(如果您不想使用反向代理服务器)

相关问题