使用RoR 4.1.4紅寶石在軌道上:傳單軌未加載
我正在嘗試使用leaflet-rails gem。我跟着GitHub的頁面中列出的步驟,但是當我嘗試加載地圖,我看到
ReferenceError: L is not defined
在瀏覽器控制檯。這顯然意味着來自該寶石的助手正在被加載並執行,但它無法找到leaflet.js
文件。
但是,頁面的頭部分顯示/assets/leaflet.js
正在被引用,它實際上是在那裏。
當我看到生成的代碼:
<div id="map"></div>
<script>
var map = L.map('map')
map.setView([-54.0, 6.08], 16)
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
maxZoom: 18,
subdomains: '',
}).addTo(map)
</script>
</div>
<script src="/assets/jquery.js?body=1" data-turbolinks-track="true"></script>
<!-- all the other scripts loaded -->
<script src="/assets/exif.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/leaflet.js?body=1" data-turbolinks-track="true"></script>
<!-- some more scripts -->
所以創業板增加了一個腳本正下方的地圖格,只有到那時,由於鏈輪機制和所有的其他腳本加載。對我來說,這看起來很明顯,腳本無法加載leaflet.js,因爲它之後被引用爲!
因此,我誤解了RoR如何處理寶石和JavaScripts的東西?它必須在某個時候被工作...
這裏是我的/app/assets/javascript/application.js:
//= require jquery
//= require jquery.ui.widget
// Here I load a whole bunch of javascripts which are related to jquery-fileupload, cut for brevity
//= require bootstrap.min
//= require bootbox.min
//= require bootstrap-datepicker
//= require exif
//= require leaflet
//= require turbolinks
//= require_tree .