私はRailsアプリケーションでGoogleマップを使う方法を長年試してきました。私は現在、Rails 5で試しています。Rails 5 - Google Maps - Javascriptエラー - initMapは関数の修正ではなく、別のものを作成する
また、私は実稼働環境でJavascriptを動作させる方法を見つけようとしています。
これらの挑戦に関する私の最近の試みは、production issue postとこのgoogle maps postに概説されています。長いcodementorセッションの後
、問題が移動することで解決されているように見えたjavascriptの本番環境:bodyタグの終わりにheadタグのうちから
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
。
しかし、これで、Googleマップのjavascriptは現在動作しません。私は多くの人がhereを含め、この問題を提起見てきました
initMap is not a function
:それは言うエラーが発生します。
私はこのスクリプトを交換することで、この記事で概説したソリューション、試してみました:重要な違いが除去され
<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=<%= ENV['GOOGLE_MAPS_API_KEY'] %>" async defer></script>
:私のアドレスビューファイルで、このスクリプトで
<script src="https://maps.googleapis.com/maps/api/js?key=<%= ENV["GOOGLE_MAPS_API_KEY"] %>&callback=initMap"
async defer></script> -->
を"& callback = initMap"のいずれかです。これにより、コンソールインスペクタでエラーは発生しません。ただし、マップは表示されません。
私は生産上の問題を修正して新しい問題を作成しました。
私はGoogle Mapsレンダリング(プロダクション環境jsを壊すことなく)を得るために何が必要なのか誰にも見えますか?
私はその後のjsファイル(map.coffee
)の内側に、私は次のことを持っている(これもスリムな構文に注意してください)これは頭の中で次のようにレール5のプロジェクトに動作させるために
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
script[async defer src="https://maps.googleapis.com/maps/api/js?key=#{ENV['GOOGLE_MAP_API']}&callback=initMap"]
を管理している
こんにちはを追加することによって、Railsの5アプリで正常にテストしました。私は試しましたが、次のようなエラーが表示されます:ExecJS :: RuntimeError at/organizations/12 SyntaxError:[stdin]:1:4:予約語「function」 – Mel
どこかでjsにエラーがあるようです。どこにプロジェクトコードがありますか? – petecss
私はinitMapの前に 'window'を追加して解決しました。ありがとう。 –