django-如何在 404.html 模板中处理静态文件

django- how to address static files in 404.html template


根据 django 的文档:

When you raise Http404 from within a view, Django loads a special view devoted to handling 404 errors. By default, it’s the view django.views.defaults.page_not_found(), which either produces a very simple “Not Found” message or loads and renders the template 404.html if you created it in your root template directory.

,我在根模板目录中创建了一个404.html文件。 当应用程序引发 404 错误时,我之前创建的这个 404.html 会显示,但它是 css 并且它的背景图片未加载。

这是 404.html 文件代码:

<!DOCTYPE html>{% load staticfiles %}
<html>
<head>
    <title>not found</title>
    <link rel="stylesheet" href="{% static 'css/error_style.css' %}"/>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"/>
</head>
<body class="color-404">
<div id="error">
    <img class="error-image" src="{% static 'img/404.jpg' %}"/>
</div>
<div class="error-router">
    <a href="#" class="gohome"><i class="fa fa-home"></i></a>
    <a href="" onclick="window.history.back();" class="goback"><i class="fa fa-arrow-left"></i></a>
</div>
</body>
</html>

我该如何解决这个问题? 坦克

不是您问题的真正答案,但通常最好不要在 error-pages 中包含外部 .js 和 .css 文件。 将它包含在页面本身中,以避免出现这种情况,因为某些原因 error-page 会产生错误。使用单个静态页面。

我找到问题所在了。 因为我将 DEBUG 设置为 False,django 的内置网络服务器未提供静态文件。