我正在开发一个Rails 4.1应用程序。我用ckeditor
(https://github.com/galetahub/ckeditor),我正在使用一些额外的插件
(image2,也使用小部件),存储在app / assets / ckeditor / plugins中
目录。我用它f.cktext_area :extraPlugins => 'image2'
。它
在开发和生产环境中都很有效。
现在我决定添加一个额外的插件(syntaxhighlight),存储和
以相同的方式使用(存储在app / assets / ckeditor / plugins中,称为
与:extraPlugins => 'image2,syntaxhighlight'
)。开发中
环境它完美的工作,但在生产ckeditor无法加载
syntaxhighlight插件,因为它试图加载而不是它的散列版本:
未捕获的异常:[CKEDITOR.resourceManager.load]资源名称 找不到“syntaxhighlight” “/assets/ckeditor/plugins/syntaxhighlight/plugin.js”
我多次运行“rake assets:precompile
”,它产生了哈希
插件版本
(/assets/ckeditor/plugins/syntaxhighlight/plugin-a9ce9661bf06ef29e7ac40baac50c044.js)。
但是,其他(旧的)额外插件都没有简单
plugin.js在公共目录中,它们可以工作。
任何想法如何使这个新的额外插件工作?
答案 0 :(得分:5)
我遇到了同样的问题。要解决此问题,请运行:
rake tmp:cache:clear
再次assets:precompile
之后。
只是为了理解发生了什么:ckeditor gem生成一个映射文件(override.js),它映射了js文件的简单版本和散列版本。如果您插入新的extraplugin,它将不会使用assets:precompile
重新生成,您必须清除缓存以强制它。