目前我使用两个提供 JavaScript 资源的 gem。这两种 Assets 相互冲突。
就我而言,它是 lazy_high_charts gem 和bootstrap-wysihtml5-rails gem 。
我当前的项目中都有。首先,我只有一些文本框的 bootstrap-wysihtml5-rails gem。昨天,我将lazy_high_charts gem 添加到我的仪表板项目中。
我的应用程序中的多个位置都有所见即所得文本框。对于仪表板,我创建了一个带有索引操作的新 Controller 仪表板。
在我添加了lazy_high_charts_gem并需要application.js list 文件中的javascript文件后,整个项目中文本框中的所有所见即所得编辑器都消失了。当我从 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
但这并没有改变任何事情。
第二次尝试
我第二次尝试修复此问题,要求在仪表板.js 文件中使用lazy_high_charts javascript 文件。
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 文件,而我的所见即所得编辑器再次停止了。
我的第三个想法如下: 对于我的仪表板,我可以为我的仪表板 Controller 创建一个自己的 Assets 文件夹和一个自己的 list 文件。在它的 javascript list 中,我可能需要lazy_high_charts javascript 文件。在我的dashboard/index.html.erb View 文件的底部,我可以使用加载javascript list
<%= javascript_include_tag "dashboard" %>
这可以解决目前的问题。但是,当我需要一个具有高图表图形和所见即所得文本框的 View 时,我再次遇到了同样的问题。
因此我问我是否有更好的解决方案来阻止两个 gem 的冲突并允许我在同一 View 中使用两者。
最佳答案
我使用完整的highcharts gem与 foundation这与 bootstrap 非常相似,我没有发现任何兼容性问题...
可能不是您正在寻找的答案,但也许是一个不错的选择!
关于javascript - Rails javascript 资源冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21432874/