2017-07-03 32 views
0

在我的應用程序中,我使用bootstrap主題(gentelella),並且在我的一個頁面中我有一個Moris圖,它在開發evnroment中非常完美,但是在生產中(heroku)不工作。Rails 5,JavaScript沒有在生產中加載

在控制檯中的錯誤是: **未捕獲的ReferenceError:莫里斯沒有定義 **

它看起來像的js爲Moris的圖表(該腳本被包括在gentelella)是未加載但一切工作正常。

代碼爲我的圖表:

<div id="graph_line"></div> 
    <script type="text/javascript"> 
    new Morris.Line({ 
     element: 'graph_line', 
     data: [ 
     {Date: 'mydate1', y: myvalue1}, 
     {Date: 'mydate2', y: myvalue2}, 
     {Date: 'mydate3', y: myvalue3} 
     ], 
     xkey: 'Date', 
     ykeys: ['y'], 
     labels: ['Y'], 
     hideHover: 'auto', 
     lineColors: ['#26B99A', '#34495E', '#ACADAC', '#3498DB'], 
     resize: true 
    }); 
    </script> 

我不包括任何Moris.js,因爲它已經包含在我的主題。

我不明白爲什麼它在當地而不是在生產中正常工作。

一些經過研究,我加入這一行我production.rb:

config.assets.debug = true 

和Heroku的日誌我有錯誤:

資產「application.css」不存在於資產管道 和應用程序未運行,但運行時沒有上述行。

任何想法,爲什麼我的圖不是在生產和工作的Heroku爲什麼不看我的application.css

P.S在我的資產我有application.scss而不是application.css會這樣造成的問題?但我需要的文件是.scss

我的application.js:

//= require jquery 
    //= require jquery.turbolinks 
    //= require jquery_ujs 
    //= require jquery.remotipart 
    //= require pnotify 
    //= require unobtrusive_flash 
    //= require flashes 
    //= require gentelella 
    //= require gentelella-custom 
    //= require_tree . 

莫里斯腳本在gentellela-custom.js初始化(init_morris_charts();

而且我application.html.erb

<%= csrf_meta_tags %> 
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> 
+0

你需要顯示更多的源代碼。當我們需要查看包含/導入Morris,您的視圖/部分,application.js等等時,您只顯示實際調用Morris的位置。 –

+0

好的,我會更新我的問題。 –

+0

在正在加載的資產內搜索「Morris」。這將幫助您調試。 – bitsapien

回答

0

更新你的代碼有一個調試器參考: <%= debugger; %>之前的行:new Morris.Line({,然後打開你最喜歡的瀏覽器,切換到調試器窗口,你將有一箇中斷點。 這將幫助您查看Morris是否在該時間點加載。

相關問題