【发布时间】:2023-09-12 04:35:01
【问题描述】:
我正在使用 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 密钥的谷歌地图会有什么问题吗?
【问题讨论】:
-
我在这些请求中看不到密钥。现在需要密钥,它可能会工作(如果您的网站是“祖父”以进行无密钥访问),但它也可能随时停止工作(如果谷歌决定更改他们的祖父政策)
-
我有 api 密钥并且我使用它,但我删除了它,我看到它继续工作。这就是我问的原因;)感谢您的回答。
标签: javascript google-maps ruby-on-rails-5 turbolinks-5