Heroku制作:未定义Gmaps - 在本地工作

时间:2015-01-04 14:57:05

标签: javascript ruby-on-rails heroku gmaps4rails

在一个简单的页面上,我会显示一个带有一个标记的谷歌地图。

在本地,每个人都能很好地工作,但是在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&amp;sensor=false&amp;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

我可能是一个简单的错误,可能与预编译的资产有关,但我并不是这方面的专家

2 个答案:

答案 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" %>