我安裝了gmaps4rails寶石我的導軌3.1.1應用程序。當我使用生成的地圖谷歌地圖一切工作正常,但後來,當我的看法改變我的代碼:gmaps4rails javascript無法找到變量:OpenLayers
<%= gmaps("markers" => {"data" => @locations}, "map_options" => { "provider" => "openlayers"}) %>
我得到的以下錯誤JavaScript控制檯在Safari:
ReferenceError: Can't find variable: OpenLayers
這裏的application.rb中的一部分,它允許使用資產管道:
config.assets.enabled = true config.assets.version = '1.0'
我綁運行無論是在產品應用離子模式:
config.assets.compress = true
config.assets.debug = true
config.assets.digest = false
而且在發展模式:
config.serve_static_assets = true
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
但它不工作。我正在使用Apache +乘客和Bundler。
JavaScript錯誤(無法找到變量:OpenLayers)正在從gmaps4rails.openlayers.js:41中引發,我可以在開發時看到javascripts未被壓縮。
我包括的openlayers.js庫的application.js如文檔中提到的在GitHub上:
//= require gmaps4rails/openlayers.js
查看我產生頁的源給了我關於被包括在JavaScript的信息在頭部分分別是:
<script src="/assets/gmaps4rails/gmaps4rails.base.js?body=1" type="text/javascript"></script>
<script src="/assets/gmaps4rails/gmaps4rails.openlayers.js?body=1" type="text/javascript"</script>
<script src="/assets/gmaps4rails/openlayers.js?body=1" type="text/javascript"></script>
但後來在頁面上,地圖容器標籤,其中有後0
我顯然得到了谷歌地圖的腳本:
<script type="text/javascript" src="//maps.google.com/maps/api/js?v=3.5&sensor=false&libraries=geometry"></script>
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox_packed.js"></script>
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.5/src/markerclusterer_packed.js"></script>
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/src/richmarker-compiled.js"></script>
<script type="text/javascript" charset="utf-8">
Gmaps.map = new Gmaps4RailsOpenlayers();
Gmaps.load_map = function() {
Gmaps.map.map_options.provider = "openlayers";
Gmaps.map.initialize();
Gmaps.map.markers = [];
Gmaps.map.create_markers();
Gmaps.map.adjustMapToBounds();
Gmaps.map.callback();
};
window.onload = function() { Gmaps.loadMaps(); };
</script>
有一些更多的配置需要一個必須做的是能夠使用的OpenLayers地圖,然後執行以下操作:
<%= gmaps("markers" => {"data" => @locations}, "map_options" => { "provider" => "openlayers"}) %>
我希望我沒有我錯過了多次嘗試過的文檔中的任何內容,但沒有發現任何提及。
好吧,我已經通過下載OpenLayers.js並將其放到我的lib/assets/javascript文件夾中解決了這個問題。我錯過了文檔中的某些內容,它應該以不同的方式完成,還是這是「正確的過程」? – 2012-01-17 12:25:22
這是寶石中的錯誤...感謝和+1 – apneadiving 2012-01-19 22:05:40