如何获取ckeditor资源来编译和加载Rails 3.1资产管道

我正在尝试在Rails 3.1应用程序中使用CKEditor。 我在app / assets / javascripts / ckeditor /中有ckeditor目录,删除了未压缩和模块化的源等无关的东西。

它在开发中工作正常。 在生产或登台环境中,ckeditor找不到它自己的文件:config.js,lang / en.js skins / kama / editor.css。 我可以看到这些文件没有被预编译,这是有道理的,因为默认情况下资产管道不会包含或预编译与/.css/或/.js/匹配的任何内容。

根据rails文档和之前的答案,如下所示 ,添加config.assets.precompile所需的文件应该是解决方案。 然而,尽管付出了大量的努力,我无法弄清楚我应该使用config.assets.precompile的格式。 它没有记录,也没有给出任何例子。

我试过按名称显式添加文件:

config.assets.precompile << ['config.js', 'en.js', 'editor.css'] 

我已经尝试添加与文件匹配的正则表达式:

 config.assets.precompile << [ /.*config\.js/, /.*en.js/, /.*editor.css/ ] 

我试过明确添加完整路径:

 config.assets.precompile << File.join(Rails.root, 'app', 'assets', 'javascripts', 'ckeditor', 'config.js') (etc...) 

在所有这些情况下(以及我尝试过的所有其他情况),运行rake资产:预编译仍然无法将我需要的文件移动到公共/资产中。 所有的图像都是如此,但不是CKEditor需要运行的三个javascript和/或css文件。

有什么想法吗?

我遇到过类似的问题。 我最终使用没有资产管道的CKEditor 🙂

在尝试了几个gem后,没有一个在生产环境中正常工作。 我最终将ckeditor放入应用程序的public文件夹中。 这完全省略了资产管道流程,ckeditor也在生产中运行良好。 没有资产预编译虽然……

使用rails 3.1,CKEditor 4.1。 虽然这是一个老线程,也许这可以帮助某人……

更新:此外,如果您正在测试本地生产环境,请不要忘记在config/environments/production.rb中将serve_static_assets设置为true

对我来说,它通过覆盖默认的预编译任务来修复(我使用了Rails 4和CkEditor 4)。

  1. 添加到application.rb config.assets.precompile += ['ckeditor/*']
  2. 在application.js //= require ckeditor/init
  3. 创建文件lib/tasks/precompile_hook.rake并粘贴此答案预编译钩子中的文本

您的代码中存在语法错误。 预编译属性是一个数组。

您可以将单个项目附加到数组,如下所示:

 config.assets.precompile << 'name_of_file.ext' 

如果您的值在数组中,则必须添加数组。

 config.assets.precompile += [ /.*config\.js/, /.*en.js/, /.*editor.css/ ] 

如果你附加然后你有一个嵌套在预编译数组中的数组,它被忽略。