我有一个使用CKeditor的rails 4应用程序。在开发模式下,它工作正常,但在生产中,ckeditor没有apear,并且在textarea的位置有一个空白区域。
根据日志,缺少以下文件:
ActionController::RoutingError (No route matches [GET] "/assets/ckeditor/styles.js")
如果我预编译资产,我可以看到生成以下文件:
public/assets/ckeditor/styles-65fee53acf063b3d207bc00b4f7ce0d5.js
这是我的application.rb的ckeditor行:
config.assets.precompile += Ckeditor.assets
似乎这是CKeditor想要的文件,但它不是在寻找预编译的文件。我该如何解决这个问题?
答案 0 :(得分:4)
我预先编译了我的资产并将我的回购推送到生产服务器并得到了类似的错误。并且ckeditor没有加载。
以下为我工作:
1)在config>下环境> productio.rb文件有一行 config.assets.compile = false
我将false更改为true并将代码推送到生产站点。停下来,开始独角兽。这就是现在ckeditor加载的诀窍。
希望有所帮助。答案 1 :(得分:1)
对于Rails 5,您可以在Gemfile中使用 gem' ckeditor',github:' galetahub / ckeditor'
答案 2 :(得分:0)
您是否在自述文件中执行了这些步骤? https://github.com/galetahub/ckeditor#usage-with-rails-4-assets
答案 3 :(得分:0)
在<head>
文件的application.html.erb
部分中指定CKEditor BasePath修复了我的问题
<script type="text/javascript">
var CKEDITOR_BASEPATH = '/assets/ckeditor/';
</script>
答案 4 :(得分:0)
我有同样的问题,我已经包含了config.assets.compile = true而且没有工作......
最后我做了rake
rake assets:precompile
从控制台。
如果要将图像直接上传到AWS S3,则需要在预编译时注释掉载波或回形针初始化程序。
然后将其推向生产并且工作正常!