Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Highcharts不适用于Heroku环境,适用于本地环境_Ruby On Rails_Heroku_Highcharts_Lazy High Charts - Fatal编程技术网

Ruby on rails Highcharts不适用于Heroku环境,适用于本地环境

Ruby on rails Highcharts不适用于Heroku环境,适用于本地环境,ruby-on-rails,heroku,highcharts,lazy-high-charts,Ruby On Rails,Heroku,Highcharts,Lazy High Charts,我使用的是用海图创建的图表。它们在我的本地开发环境中运行良好,但在Heroku上没有显示图表。div只是空的: <div id="dashboard_chart_75"></div> 这是生成图表的代码: spider_chart = LazyHighCharts::HighChart.new('graph') do |f| f.chart(polar: true, type: 'line', height: @height) f.pane(size: @siz

我使用的是用海图创建的图表。它们在我的本地开发环境中运行良好,但在Heroku上没有显示图表。div只是空的:

<div id="dashboard_chart_75"></div>
这是生成图表的代码:

spider_chart = LazyHighCharts::HighChart.new('graph') do |f|
  f.chart(polar: true, type: 'line', height: @height)
  f.pane(size: @size)
  f.colors(['#C41D21','#1c77bb'])
  f.xAxis(
    categories: categories.map{ |c| [@survey.id,c.id, c.name] },
    tickmarkPlacement: 'on',
    lineWidth: 0,
    labels: {
      style: {
        fontSize: '12px',
        weight: 'bold',
        width: '100%'
      },
      formatter: %|function() {return '<a href="' + window.location.hostname + '/dashboards/spiders?level=2&survey_id=' + this.value[0] + '&category_id=' + this.value[1] + '">' + this.value[2] + '</a>';}|.js_code }
      )
  f.yAxis(gridLineInterpolation: 'polygon', lineWidth: 0, min: 0, max: 10,tickInterval: 1, tickWidth: 20)
  f.tooltip(enabled: false)
  f.series(name: "Gemiddelde van gewenste score", data: norm_scores, pointPlacement: 'on')
  f.series(name: "Gemiddelde van huidige score", data: current_scores, pointPlacement: 'on')
  f.legend(enabled: @legend, align: 'center', verticalAlign: 'top', y: 10, layout: 'vertical')
end
指的是这一行:

window.chart_spider_chart = new Highcharts.Chart(options);

这可能是什么原因造成的?

您似乎真的遇到了一个简单的资产版本控制问题,没有理由让highcharts在生产中表现不同

尝试使用以下方法清除资产并强制预编译:

$ bundle exec rake assets:clobber
$ RAILS_ENV=production bundle exec rake assets:precompile
然后,添加并提交您的
public/assets
文件夹以推送到Heroku中。我很难相信部署预编译会像预期的那样工作。有时,编译资产时会出现错误,您需要在预编译之前更改文件以感知更改

如果这不起作用


您可能在生产中遇到gem问题,可能它在gemfile中的开发块中,或者甚至可能
=//require\u tree.
或任何其他可能在highcharts lib初始化之前插入该代码的require,搞乱脚本顺序会有所帮助(即使粘贴的代码没有反映这一点)

尝试在
public
目录中查找
.sprockets manifest
文件,如果找到该文件,则将其删除(这是一个隐藏文件)。如果您在本地编译资产并意外提交该文件,则可能会阻止在Heroku上编译资产


您还可以尝试通过在
config/production.rb
中碰撞资产版本来强制Heroku资产重新编译。例如,将
config.assets.version=1.0
更改为
1.1
,然后推送。

请在创建Highcharts图表的地方共享代码。也许可以帮助Nope,已经看到了。这似乎是一个资产预编译问题e、 通常这是Heroku在部署时完成的,但我在部署前手动完成了一次。从那时起,图表就不再工作了。行
window.chart\u spider\u chart=new Highcharts.chart(选项)在哪里
?您是否尝试过删除格式化程序,只是为了测试?
public/assets
中意外提交的任何内容?您可以尝试通过在
config/production.rb
中碰撞资产版本来强制Heroku资产重新编译。例如,将
config.assets.version=1.0
更改为
1.1
,然后按下按钮。嗨,我是id您对资产预编译说了什么,但不幸的是没有运气。当我部署到Heroku时,我看到它显示
检测到的清单文件,假设资产是本地编译的
,这样可以吗?因为通常Heroku会处理这个问题?是的,这是可以的,这只意味着您按照它说的做了:您在本地编译了资产。资产崩溃ar所有预编译的文件,包括
.sprockets manifest
,这将解决资产版本控制问题,您尝试过第二个选项吗?您的第二个选项成功了!完全删除
=//require\u树。
或将其移到底部都有帮助,谢谢!我做了您提到的两件事,运气不好。当我查看
public时/资产
我希望看到类似于
highcharts.jsxxxxxx
的东西,但我看不到任何与highcharts相关的东西?
window.chart_spider_chart = new Highcharts.Chart(options);
$ bundle exec rake assets:clobber
$ RAILS_ENV=production bundle exec rake assets:precompile