在我的应用程序中,我使用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' %>
你需要显示更多的源代码。当我们需要查看包含/导入Morris,您的视图/部分,application.js等等时,您只显示实际调用Morris的位置。 –
好的,我会更新我的问题。 –
在正在加载的资产内搜索“Morris”。这将帮助您调试。 – bitsapien