我正在使用 rails 5 和 turbolinks 5,我不想禁用 turbolinks,但它正在多次加载 google maps api。
我进行了很多搜索,找到了很多适用于 rails 4 和 turbolinks 3 的解决方案。我尝试了所有看到的解决方案,但没有一个有效。
其中一个看起来很简单:
<script src="http://maps.googleapis.com/maps/api/js?v=3.exp" type="text/javascript" data-turbolinks-eval="always"></script>
但仍然多次加载谷歌地图。
其中另一个是:
<script src="http://maps.googleapis.com/maps/api/js?v=3.exp" type="text/javascript" data-turbolinks-track="reload"></script>
但都没有工作。
一个有希望的解决方案是:
var ready;
ready = function() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://maps.googleapis.com/maps/api/js?v=3.exp';
document.body.appendChild(script);
};
$(document).ready(ready);
$(document).on('turbolinks:load', ready);
但是这个有时不会在地图初始化之前加载谷歌地图,有时它会返回多次加载的错误。
我读了很多书,有很多问题都问同样的问题,但我没有在其中任何一个中找到可行的解决方案。
PD:我现在看到我删除了谷歌地图的 api 密钥,它仍然可以工作,但我在控制台中看到了一条错误消息。
Google Maps API warning: NoApiKeys
如果我在生产中使用没有 api 密钥的谷歌地图会有什么问题吗?