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