在我的应用程序中,我使用了bootstrap主题(gentelella),在我的一个页面中,我有一个Moris图表,它在开发经验中非常有效,但在生产中(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
我的资产中有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 .
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' %>
答案 0 :(得分:0)
更新您的代码以获得调试器参考:
在<%= debugger; %>
行之前的new Morris.Line({
,然后打开您喜欢的浏览器,切换到调试器窗口,您将在那里有一个断点。
这将有助于您了解Morris是否在那个时间点装载。