【问题标题】:django- how to address static files in 404.html templatedjango-如何处理 404.html 模板中的静态文件
【发布时间】:2017-07-04 13:12:56
【问题描述】:


根据 django 的文档:

当您从视图中引发 Http404 时,Django 会加载一个专用于处理 404 错误的特殊视图。默认情况下,它是视图 django.views.defaults.page_not_found(),如果您在根模板目录中创建模板 404.html,它会生成非常简单的“未找到”消息或加载并呈现模板。

,我在根模板目录中创建了一个 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>

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

【问题讨论】:

  • {% static 'css/error_style.css' %} 呈现为什么?
  • @alasdair 这是用于提供页面样式的。有错吗?
  • 我的意思是,它在渲染的 404.html 模板中是什么样子的?在浏览器中点击查看源代码进行查看。
  • @alasdair 这个css是真的存在的。
    对不起先生,我的英语不够好!
  • 您的 404.html 模板看起来不错 - 听起来问题出在您的 static files config 上。

标签: django django-templates django-views django-extensions


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 2014-04-05
      • 1970-01-01
      • 2014-12-10
      • 2012-02-03
      • 2012-09-30
      • 2020-10-17
      • 1970-01-01
      • 2013-06-18
      相关资源
      最近更新 更多