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

Sho*_*ikh -4 django

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

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

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

rud*_*dra 6

您可以在DEBUG=Falseusing( docs ) 中提供静态服务(不推荐在生产服务器中使用):

python manage.py runserver --insecure
Run Code Online (Sandbox Code Playgroud)

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

MIDDLEWARE = [
  # 'django.middleware.security.SecurityMiddleware',
  'whitenoise.middleware.WhiteNoiseMiddleware',
  # ...
]
Run Code Online (Sandbox Code Playgroud)

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

  • 因为`它非常低效并且可能不安全`。(根据文档) (3认同)