重新访问主页时,gmaps 不会重新加载

When revisiting home page, gmaps won't reload

我有一个应用程序使用 Google 地图 API gem

    gem 'gmaps4rails'

我在主页上有地图。该页面在首次加载时加载正常,然后如果转到另一个页面,该页面的内容将加载,但是当我返回主页时,之前的内容仍然存在并且地图不会加载。如果您手动刷新页面,它会正常加载。

我很确定这是一个我遗漏的简单错误,如何在我重新访问它时让页面刷新?

我的主页代码和脚本在这里

    <div style='width: 400px;'>
        <div id="map" style='width: 400px; height: 400px;'></div>
    </div>

    <script src="//maps.google.com/maps/api/js?key="" + ENV['GOOGLE_API_KEY']></script>
    <script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
    <script type="text/javascript">
    handler = Gmaps.build('Google');
    handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
      markers = handler.addMarkers([
        {
          "lat": -32.023598,
          "lng": 115.859690,
          "picture": {
            "width":  32,
            "height": 32
          },
          "infowindow": "hello!"
        }
      ]);
      handler.bounds.extendWith(markers);
      handler.fitMapToBounds();
      handler.getMap().setZoom(16);
    });
    </script>

我找到了一些类似的答案,但我无法解决问题。

您可以在要重新加载代码的页面上的 JavaScript 中使用空的匿名 onunload = function(){},然后在再次加载页面之前清除缓存。

turbolink 有问题。

禁用所有 link_to 页面上的 turbolink 或删除需要 turbolink 的页面 app/assets/javascripts/application.js

示例:

<%= link_to('HOME', root_path, 'data-no-turbolink' => true) %>