html - 使用 Django 模板从 base.html 继承的导航栏无法正确呈现样式

标签 html css django

我正在实现一个导航栏,我想使用 Django 模板来实现 DRY 原则。第一张图是模板化前的样子,第二张图是模板化后的样子。 ( https://imgur.com/a/FOEqKFB )

如何让 css 文件在继承的 html 文件中正确呈现?我认为这是我没有调用 base.html 中的 CSS 文件的情况(例如:another similar answer),但我检查了 base.html 的代码并且我已经为导航栏样式调用了 Bootstrap CDN header 。我的代码出了什么问题?

这是问题的相关代码: 基础.html

<!DOCTYPE html>

{% load static %}

<html lang="en">
<head>
    <title>{% block title %}Title{% endblock title %}</title>
    {% block head_favicon %}
        <link rel="icon" type="image/x-icon" href="/favicon.ico">
    {% endblock head_favicon %}

    {% block head_meta %}
        {% block head_meta_charset %}
            <meta charset="UTF-8">
        {% endblock head_meta_charset %}
        {% block head_meta_contentlanguage %}
            <meta http-equiv="X-UA-Compatible" content="ie=edge" value="en-US">
        {% endblock head_meta_contentlanguage %}
        {% block head_meta_viewport %}
            <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0">
        {% endblock head_meta_viewport %}
    {% endblock head_meta %}

    {% block head_css %}
        {% block head_css_site %}
            <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
        {% endblock head_css_site %}
        {% block head_css_section %}{% endblock head_css_section %}
        {% block head_css_page %}{% endblock head_css_page %}
    {% endblock head_css %}

    {% block head_javascript %}
        {% block head_javascript_site %}
            <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous" async></script>
            <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous" async></script>
            <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous" async></script>
        {% endblock head_javascript_site %}
        {% block head_javascript_section %}{% endblock head_javascript_section %}
        {% block head_javascript_page %}{% endblock head_javascript_page %}
    {% endblock head_javascript %}
</head>

<body>
{% block navbar %}
    <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container-fluid">
            <div class="navbar-header">
                <a class="navbar-brand" href="/">CCC</a>
            </div>
            <ul class="nav navbar-nav">
                <li class="active"><a href="/">Home</a></li>
                <li><a href="/product">Products 1</a></li>
                <li><a href="/resultpage">Contact Us</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li><a href="/signup"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
                <li><a href="/login"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
            </ul>
        </div>
    </nav>
{% endblock navbar %}

{% block content %}
    if you see this, something is wrong!
{% endblock content %}

</body>
</html>

CCC.html

{% extends 'CCC/base.html' %}

{% load static %}

{% block title %}Gift Countdown{% endblock title %}

{% block head_css_page %}
  <link href="https://fonts.googleapis.com/css?family=Great+Vibes&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="{% static 'homepage/styles/cccStyle.css' %}">
{% endblock head_css_page %}

{% block head_javascript_page %}
    <script type='text/javascript' language='javascript' src="{% static 'homepage/scripts/homepage.js' %}" async></script>
{% endblock head_javascript_page %}

{% block content %}
  <div class='bg'></div>
  <div class="ctr">
    <p>It's</p>
      <div id="demo" onload="countdown();"></div>
    <p>Until Christmas!</p>
  </div>
  <form class = 'ctrform' action="{% url 'homepage' %}" method="POST">
    {%csrf_token%}
    {{Reminder}}
    <button type="submit">Submit</button>
  </form>
{% endblock content %}

最佳答案

Bootstrap 所需的 3 个脚本位于 base.html 的 footer_javascript_site block 中, <body> 中标签。那是无效的 HTML。你可以简单地将它移动到 <body> 中或者看看 Where should I put <script> tags in HTML markup?有关如何将其全部放入 <head> 的建议.

关于html - 使用 Django 模板从 base.html 继承的导航栏无法正确呈现样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59225194/

相关文章:

javascript - 如何通过ID获取json数组中的数据

javascript - 单击其他列表项时淡出

html - CSS3 高度 :100% and flexible boxes creating unexpected behaviour

python - 在 SUSE 11 服务器上安装 mod_wsgi 时出错

django - 将自定义属性添加到 django 模型字段

html - Bootstrap 3 : Fixed Right Sidebar

javascript - 如何使用javascript在html中循环运行多个flash文件

javascript - 动画新创建的列表元素

css - 重复线性渐变中的百分比实际上是如何工作的?

python - 在settings.py 中运行collectstatic 时出现语法错误(Django 1.5.1)