多年来我一直在尝试弄清楚如何在我的 Rails 应用程序中使用谷歌地图。我目前正在尝试使用 Rails 5。
我也一直在试图弄清楚如何让我的 javascript 在生产环境中工作。
我最近对这些挑战的尝试概述于生产问题帖子 https://stackoverflow.com/questions/40876263/rails-5-js-not-working-in-production-environment-only和这个谷歌地图帖子 https://stackoverflow.com/questions/40823772/google-maps-how-to-set-the-zoom-level.
经过长时间的codementor会话,生产环境javascript问题似乎已经通过移动解决了:
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
从 head 标签到 body 标签的末尾。
然而,这样做时,谷歌地图 javascript 现在不起作用。它给出一个错误:
initMap is not a function
我看到很多其他人提出这个问题,包括here https://stackoverflow.com/questions/40448238/initmap-is-not-a-function.
我已经尝试过这篇文章中概述的解决方案,即替换此脚本:
<script src="https://maps.googleapis.com/maps/api/js?key=<%= ENV["GOOGLE_MAPS_API_KEY"] %>&callback=initMap"
async defer></script> -->
在我的地址视图文件中使用此脚本:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=<%= ENV['GOOGLE_MAPS_API_KEY'] %>" async defer></script>
主要区别是删除了“callback=initMap”。这不会在控制台检查器中给出任何错误。但是,它也不显示地图。
我通过解决生产问题创造了一个新问题。
谁能看到我需要做什么才能获得谷歌地图渲染(不破坏生产环境js)?