在一个简单的页面上,我会显示一个带有一个标记的谷歌地图。
在本地,每个人都能很好地工作,但是在Heroku上我在控制台中遇到错误:
Uncaught ReferenceError: Gmaps is not defined
这与
有关handler = Gmaps.build('Google'); //and some other stuff
Localy,这是有效的。但是当我在heroku上部署它时,就像它无法加载JS一样。
这是我文件的顶部
<script src="//maps.google.com/maps/api/js?v=3.13&sensor=false&libraries=geometry"type="text/javascript"></script>
<script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js'type='text/javascript'></script>
<script src='//google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/src/richmarker-compiled.js' type='text/javascript'></script>
和application.js
//= require underscore
//= require gmaps/google
我可能是一个简单的错误,可能与预编译的资产有关,但我并不是这方面的专家
答案 0 :(得分:2)
实际上,我解决了我的问题:
我的控制台向我显示JQuery未定义。我并没有真正关注它。但这就是问题所在。所以我在application.js
中更改了的顺序,并将 gmaps 置于顶部
//= require gmaps/google
//= require jQuery.headroom.min.js
//= require headroom.min.js
//= require underscore
//= require template.js
如此gmaps位于文件顶部,当JQuery被声明为undefined时它没有阻止加载的gmaps。 所以现在我必须解决jquery问题,但这个gmaps问题已经解决了
答案 1 :(得分:1)
当您在本地系统中运行rails服务器时,请始终使用命令“rails s -e production”来检查该站点在heroku中的工作方式。您应该添加
// = require_tree。
到您的application.js ..请检查以下链接:
gmaps4rails: Uncaught ReferenceError: Gmaps is not defined
如果您在.html.erb文件中使用标准<script>
收到错误,那么这就是您在.html.erb文件中包含javascript的方式,否则可能会显示错误
<%= javascript_include_tag "http://YourJavascriptFileLink.js" %>