目前我使用两个提供javascript资源的宝石。这两个资产相互冲突。rails javascript资产冲突
在我的情况下,它是lazy_high_charts宝石和bootstrap-wysihtml5-rails宝石。
我在我目前的项目中都有。首先,我只有一些文本框的bootstrap-wysihtml5-rails gem。昨天我将lazy_high_charts gem加入了我的仪表板项目中。
我在我的应用程序的多个地方有wysiwyg文本框。对于仪表板,我使用索引操作创建了一个新的控制器仪表板。
当我在我的application.js清单文件中添加了lazy_high_charts_gem并且需要javascript文件之后,整个项目中我的文本框中的所有wysiwyg编辑器都消失了。只要我从我的application.js文件中删除了lazy_high_charts javascript要求,wysiwyg编辑就回来了。
首次尝试 我的第一个解决这个问题的尝试是改变我从JavaScript要求的顺序:
的application.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
但这并没有改变。
第二次尝试
我的第二次尝试解决该问题,要求javascript文件的dashboard.js文件中的lazy_high_charts。
的application.js
//= require bootstrap-wysihtml5
//= require bootstrap-wysihtml5/locales/de-DE
dashboard.js
//= require highcharts/highcharts
//= require highcharts/highcharts-more
//= require highcharts/highstock
但这个尝试的问题是预编译的全部资产后的JavaScript文件被编译成这一大javascript文件和我的wysiwyg编辑再次停止。
我的第三个想法是: 对于我的仪表板,我可以创造一个自己的资产,文件夹和我的仪表盘控制器的自己的清单文件。在它的JavaScript清单中,我可能需要lazy_high_charts JavaScript文件。在我的仪表板/ index.html.erb视图文件的底部,我可以加载JavaScript清单
<%= javascript_include_tag "dashboard" %>
这将解决此刻的问题。但是当我需要一个高图表和一个wysiwyg文本框时,我又碰到了同样的问题。
因此,我问我是否没有更好的解决方案来阻止这两个宝石的冲突,并允许我在相同的视图中使用两者。
尝试更清楚一点。看起来你很快就写了这个,然后漫不经心地说。当人们很难遵循你的“问题”时,人们很难帮助你。 – Ecnalyr
对不起,我不够清楚。我改变了我的问题,希望现在更清楚。我的英语不是最好的,我认为这是更多的问题。现在清楚了吗? – coderuby