我在我的 Rails 4 应用程序中使用 ckeditor gem。 本地和暂存的 Heroku 环境都可以正常工作,但是在推向生产环境时出现以下错误:
GET http://myapp.herokuapp.com/assets/ckeditor/contents.css 404 (Not Found)
GET http://myapp.herokuapp.com/assets/ckeditor/skins/moono/icons.png 404 (Not Found)
编辑器正常显示,但所有图标都不见了。
我按照README (https://github.com/galetahub/ckeditor)的说明进行了操作,但可能还有些地方不对。
我的操作步骤如下:
1) 进行 Gem 安装、生成等操作...
2) 在 application.js 中添加 config.autoload_paths += %W(#{config.root}/app/models/ckeditor)
3) 在 routes.rb 中添加 mount Ckeditor::Engine => "/ckeditor"
(我不明白为什么需要这一步)
4) 在 application.js 中
//= require ckeditor/override
//= require ckeditor/init
这个代码到底是在做什么,为什么需要覆盖?(这些文件位于哪里,因为它们既不在/app/assets
中,也不在/lib/assets
中,也不在/vendor/assets
中)
Heroku是只读模式的,因此我不能像教程中所述那样运行rake任务。 我认为这就是为什么我在生产模式下遇到错误的原因。
有人面对过同样的问题吗? 我查阅了所有的stackoverflow问题,但迄今没有解决我的问题。
更新:
我发现让它工作的唯一方法是实时编译:config.assets.compile = true
但我宁愿在生产环境中不使用它,而且我不明白为什么它可以工作。