繁体   English   中英

Rails 5,未在生产中加载javascript

[英]Rails 5, javascript is not loaded in production

在我的应用程序中,我使用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' %>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM