2014-05-23 101 views
1

我正在開發一個Rails 4.1應用程序。我使用ckeditor (https://github.com/galetahub/ckeditor),並且我正在使用一些額外的插件 (image2,它也使用小部件),存儲在app/assets/ckeditor/plugins 目錄中。我用它與f.cktext_area :extraPlugins => 'image2'。它 在開發和生產環境中都能很好地工作。Rails ckeditor extraplugin生產問題

現在我決定增加一個額外的插件(syntaxhighlight),存儲和使用方法相同 (存儲在應用程序/資產/ CKEditor的/插件,叫做 與:extraPlugins => 'image2,syntaxhighlight')。在開發 環境中它的作品完美,但在生產中的CKEditor無法加載 syntaxhighlight插件,因爲它嘗試加載不是它的哈希版本:

未捕獲的異常:[CKEDITOR.resourceManager.load]資源名稱 「 syntaxhighlight」在 未找到 「/assets/ckeditor/plugins/syntaxhighlight/plugin.js」

我跑 「rake assets:precompile」 很多時候,它產生的哈希 版本的插件 的(/資產/ CKEditor的/插件/ syntaxh ighlight /插件-a9ce9661bf06ef29e7ac40baac50c044.js)。 但是沒有一個工作的其他(舊)extraplugins在公共目錄中沒有簡單的 plugin.js,並且它們工作正常。

任何想法如何使這個新的額外插件工作?

回答

5

我有同樣的問題。爲了解決這個問題,運行:

rake tmp:cache:clear 

and after assets:precompile again。

只爲了解發生了什麼:ckeditor gem生成一個映射文件(override.js),它映射簡單和哈希版本的js文件。如果你插入一個新的附加插件,它不會重新生成assets:precompile,你必須清除緩存來強制它。