Rails 5,未在生产中加载javascript

问题描述 投票:0回答:1

在我的应用程序中,我使用bootstrap主题(gentelella),在我的页面之一中,我有一个Moris图,该图在Development evniroment中非常有效,但在production(heroku)中则不起作用。

控制台中的错误如下:**未捕获的ReferenceError:未定义Morris **

似乎未加载Moris图的js(该脚本包含在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

PS在我的资产中,我有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 .

morris脚本在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' %>
javascript ruby-on-rails twitter-bootstrap heroku
1个回答
0
投票

更新您的代码以获取调试器参考: <%= debugger; %> <%= debugger; %>行之前带有: new Morris.Line({ ,然后打开您喜欢的浏览器,切换到调试器窗口,您将在其中找到一个断点。这将帮助您查看是否在那个时间点加载了Morris 。

© www.soinside.com 2019 - 2024. All rights reserved.