【发布时间】:2017-07-03 21:10:56
【问题描述】:
在我的应用程序中,我使用引导主题 (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 脚本在 gentella-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。这将帮助您调试。
标签: javascript ruby-on-rails twitter-bootstrap heroku