1

目前,我使用两个提供 javascript 资产的 gems。这两种资产相互冲突。

在我的例子中,它是lazy_high_charts gem 和bootstrap-wysihtml5-rails gem。

我目前的项目中都有。首先,我只有一些文本框的 bootstrap-wysihtml5-rails gem。昨天我将lazy_high_charts gem 添加到我的仪表板项目中。

我的应用程序内的多个位置都有所见即所得的文本框。对于仪表板,我创建了一个带有索引操作的新控制器仪表板。

在我添加了lazy_high_charts_gem 并需要我的application.js 清单文件中的javascript 文件后,整个项目中我的文本框中的所有所见即所得编辑器都消失了。一旦我从我的 application.js 文件中删除了lazy_high_charts javascript 要求,所见即所得的编辑器就回来了。

第一次尝试 我第一次尝试解决这个问题是改变我的javascript要求的顺序:

应用程序.js

//= require bootstrap-wysihtml5
//= require bootstrap-wysihtml5/locales/de-DE
//= require highcharts/highcharts                                                           
//= require highcharts/highcharts-more                                                         
//= require highcharts/highstock

到: application.js

//= require highcharts/highcharts                                                           
//= require highcharts/highcharts-more                                                         
//= require highcharts/highstock
//= require bootstrap-wysihtml5
//= require bootstrap-wysihtml5/locales/de-DE

但这并没有改变。

第二次尝试

我第二次尝试解决这个问题是在dashboard.js 文件中要求lazy_high_charts javascript 文件。

应用程序.js

//= require bootstrap-wysihtml5
//= require bootstrap-wysihtml5/locales/de-DE

仪表板.js

//= require highcharts/highcharts                                                           
//= require highcharts/highcharts-more                                                         
//= require highcharts/highstock

但是这种尝试的问题是,在预编译所有资产之后,javascript 文件被编译成这个大的 javascript 文件,而我的所见即所得编辑器又停止了。

我的第三个想法如下: 对于我的仪表板,我可以为仪表板控制器创建一个自己的资产文件夹和一个清单文件。在它的 javascript 清单中,我可能需要lazy_high_charts javascript 文件。在仪表板/index.html.erb 视图文件的底部,我可以加载 javascript 清单

<%= javascript_include_tag "dashboard" %>

这将解决目前的问题。但是当我需要一个带有高图表和所见即所得文本框的视图时,我又遇到了同样的问题。

因此,我问我是否有更好的解决方案可以阻止两个宝石的冲突,并允许我在同一视图中使用两者。

4

1 回答 1

0

我使用带有基础的完整highcharts gem ,它与 bootstrap 非常相似,但我没有发现任何兼容性问题......

可能不是您正在寻找的答案,但也许是一个不错的选择!

于 2014-01-29T15:19:42.733 回答