我刚刚从资产管道迁移,刚刚从Rails 3.0迁移.我正在试图让CKEditor进入管道,但是所有的宝石对它们如何工作来说真的不清楚,并且很少或没有使用说明.
我更喜欢这样做,而不使用gem,因为我似乎只需将源文件放入vendor / assets目录,然后将它们包含在application.js中.然而,我已经尝试过,当我预编译并推送到生产中时,似乎没有找到一些文件(例如,editor.css),编辑器根本就不显示区).
的application.js
//= require jquery //= require jquery_ujs //= require ckeditor/ckeditor //= require_self
这是在vendor / assets / javascript / ckeditor /中的源文件,并指向ckeditor.js.我不知道从哪里走.此代码在开发中工作正常,但在生产中不起作用.我正在运行rake资产:在添加和提交git之前预编译,然后推送到heroku.
解决方法
如果您使用的是Rails 3.1.0,则应升级到3.1.1.在此版本中,预编译耙任务将资源编译为原始文件和消化文件名.这是第三方代码,这是没有管道意识仍将工作.
您将需要将ckeditor目录及其所有子目录添加到预编译数组中,以便预编译任务知道编译它们.
config.assets.precompile = your_files
your_files可以是一系列文件,正则表达式或Procs – 无论捕获ckeditor文件的名称是什么.我没有ckeditor方便地编写预编译需要什么,所以其他人可能会感谢它,如果你发布你想出来的!
有一点需要注意的是,如果您的Web服务器上的/ assets目录设置了远端头,则需要排除CKeditor目录.因为这些文件不会被指纹识别,所以当您更新CKeditor时,有些客户端没有获得更新的代码可能会出现问题,因为它们有一个缓存的副本,标记为将来只能过期一段时间.