Rails 5,javascript没有加载到生产中



在我的应用程序中,我使用引导主题(gentelella(,在我的一个页面中,我有一个Moris图,它在开发环境中完美运行,但在生产(heroku(中不起作用。

控制台中的错误如下: **未捕获的引用错误:未定义莫里斯 **

看起来莫里斯图的 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 日志中,我有错误:

资产"应用程序.css"不存在于资产管道中,应用未运行,但在没有上述行的情况下运行。

知道为什么我的图形在生产中不起作用以及为什么 heroku 看不到我的应用程序吗.css

附言在我的资产中,我有应用程序.scss而不是应用程序.css这会导致问题吗?但是我需要文件是.scss的

我的申请.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((;( 中初始化

还有我的应用程序.html.erb

<%= csrf_meta_tags %>
<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

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

最新更新