Django 模板不会 运行 Google 映射 javascript 块内

Django template won't run Google Maps javascript inside a block

我有一个 base.html 和一个扩展 base.html 并填充 {% block content %}{% endblock %} 的 index.html。但是,出于某种原因,我在处理启动 Google 地图的块中的 javascript 不会创建地图 - 页面是空白的。在不扩展 base.html 的情况下(即只需在 base.html 中明确输入 index.html 中的所有内容),地图工作正常。代码:

base.html

<!DOCTYPE html>

{% load static %}
<html>
  <head>
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href='{% static "mh_app/style.css" %}' />
  </head>
  <body>
    <header id="header">
      <div class="header-cont">
        <h1>
          Title
        </h1>
        <nav id="nav">
          <ul>
            <li>
              <a href="{% url 'index' %}">Home</a>
            </li>
            <li>
              <a href="{% url 'download' %}">Download</a>
            </li>
            <li>
              <a href="{% url 'about' %}">About</a>
            </li>
          </ul>
        </nav>
      </div>
    </header>
    {% block content %}{% endblock %}
  </body>
</html>

index.html

{% block content %}
  <div id='map'></div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
  <script type='text/javascript'>
    function initMap() {
      var map = new google.maps.Map(document.getElementById('map'), {
        center: {lat: 38.3499047, lng: -100.0770253},
        zoom: 4
      });
    }
  </script>
  <script src="https://maps.googleapis.com/maps/api/js?key=<my_api_key>&callback=initMap" async defer></script>
{% endblock %}

我试过在 initMap() 中添加一些 console.log 语句,它们 运行 很好,所以我不知道为什么地图没有出现。

编辑

style.css

#map {
  height: 90%;
  width: 100%;
}

你有 map div 的样式吗?

map 添加高度和宽度 div,尝试将 <div id="map"></div> 更改为 <div id="map" style="width: 500px; height: 500px;"></div>