我在Rails项目中使用了令人惊叹的gem gmaps4rails。它在我的本地机器上运行得很好,但是一旦部署在Heroku的Cedar堆栈上,javascript就会在window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); };
抛出一个错误,抱怨在Gmaps上不存在triggerOldOnload。再次,它在本地工作正常。
以下是出现错误的整个脚本块:
<SCRIPT type="text/javascript" charset="utf-8">
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.map_options.auto_adjust = true;
Gmaps.map.initialize();
Gmaps.map.markers = [{"title":"Project 1","lat":18.71381,"lng":-72.35581}, {"title":"Project 2","lat":18.71567,"lng":-72.35603}];
Gmaps.map.markers_conf.do_clustering = true;
Gmaps.map.create_markers();
Gmaps.map.adjustMapToBounds();
Gmaps.map.callback();
};
Gmaps.oldOnload = window.onload;
window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); };
</SCRIPT>
提前感谢您查看此内容!
答案 0 :(得分:3)
我猜您更新了gem,但没有重新运行命令来复制应用中的资源。
答案 1 :(得分:2)
升级gmaps4rails后我遇到了类似的问题。
问题是生成的js文件的文件名和结构发生了变化。
在application.js
中现在需要将gmaps4rails.base.js包含在捆绑资产中。这是无法找到的方法。
//= require gmaps4rails/gmaps4rails.base.js
也
//= require gmaps4rails/googlemaps.js
现在是
//= require gmaps4rails/gmaps4rails.googlemaps.js
答案 2 :(得分:0)
您的里程可能会有所不同 - 我不知道您使用的是哪个版本的Rails或GMaps4Rails,但是当我遇到Rails 3.2.16 / Gmaps4Rails v2(提交52d7161409a060ddeabc87aa3c10049adc5edd4d)时,根据说明{{3} },在添加地图Javascript
部分中<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>