目前我使用兩個提供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