Django模板不会在块内运行Google Maps javascript

时间:2017-02-16 21:01:42

标签: javascript django google-maps google-maps-api-3 google-maps-api-2

我有一个base.html和一个index.html,它扩展了base.html并填写了{% block content %}{% endblock %}。但是,出于某种原因,我在块中处理启动Google地图的JavaScript不会创建地图 - 该页面为空白。如果没有扩展base.html(即只是通过在index.html中明确键入base.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 %}

我已经尝试在console.log内粘贴一些initMap()语句,它们运行得很好,所以我不知道为什么地图没有出现。

修改

的style.css

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

1 个答案:

答案 0 :(得分:0)

你有map div的样式吗?

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