Django 500 错误页面未加载 CSS 文件

Django 500 Error page doesn't load CSS file

500 错误处理程序模板不会加载 CSS 即使输入的所有内容都正确。 例如,我的主页模板使用相同的方法正确加载 CSS 这是 500.html 模板

    <html>
        <head>
            {%load static%}
            <meta charset="utf-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1">
        
            <title>500</title>
        
            <link rel="stylesheet" type="text/css" href="{% static 'style.css' %}"/>
        
        </head>
        
        <body>
         html code here
        </body>
        
        </html>

这应该从静态文件夹中加载 style.css 文件

<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}"/>

在终端中看起来一切正常,但仍然无法加载。

"GET /static/style.css HTTP/1.1" 200 734

如果我尝试访问 127.0.0.1:8000/static/main.css(主页那个),它会显示应该如何访问

如果我尝试访问 127.0.0.1:8000/static/style.css 它会给我一个错误

我不知道这是否重要,但我正在使用 DEBUG = False

编辑:我通过 运行 服务器 py manage.py runserver --insecure 解决了错误 在这一点上,我想知道如果我想在服务器上托管网站,我该如何解决这个问题?为什么在没有 运行 服务器的情况下不为错误页面加载静态文件?

这通常是我呈现的 Django 模板标签:{% load static %}。有时要注意空格。而且,我在页面顶部包含静态内容。

manage.py runserver 命令启动 Django 开发服务器,该服务器用于生产,因此停止服务DEBUG=FALSE.

时的静态文件

正如您在编辑中指出的那样,您可以在启动服务器 (see the documentation here) 时使用 --insecure 选项绕过此安全措施。但这显然是一种不安全且低效的解决方案。

因此您可以使用真正的 HTTP 服务器提供静态文件(提供了一些示例和教程 here) or you can have a look to the very popular WhiteNoise 应用程序来帮助您做到这一点。

在 setting.py

中保持 DEBUG=TRUE

文档:https://docs.djangoproject.com/en/3.2/ref/settings/

当 DEBUG 为 True 时,通过 Django 提供静态文件。