我写了一个rails4应用程序并部署到heroku,一切正常,直到我添加gem ckeditor
并想要实现这个所见即所得的编辑器。我跑的时候
git push heroku master
这一步花了我很多时间
Preparing app for Rails asset pipeline
甚至更多,最后我得到这个错误:
Running: rake assets:precompile
! Timed out compiling Ruby/Rails app (15 minutes)
! See https://devcenter.heroku.com/articles/slug-compiler#time-limit
似乎这个编辑器太重了,无法编译。
我已经搜索了解决方案,就像这两个提示页面
我喜欢那些之后:
# config/initializers/ckeditor.rb:
Ckeditor.setup do |config|
config.assets = ["ckeditor/ckeditor.js"]
end
仍然出现相同的超时错误。
为了浪费这么多时间等待预编译错误而叹气。
只是想知道如何像某些语言包,插件那样彻底解除不必要的包。
BTW,事情可以用资产完成:在本地预编译。答案 0 :(得分:2)
所以我最终通过以下方式解决了这个问题:
config.assets.precompile += Ckeditor.assets
添加到application.rb
gem 'turbo-sprockets-rails3'
群组下的Gemfile中添加了:assets
。Bundle Install
从active_admin.js.coffee
中删除了以下行:
//= require active_admin/base
//= require ckeditor/override
//= require ckeditor/init
推到Heroku。
现在一切正常,因为在推送ckeditor
之前已经重新编译了大部分资产。
答案 1 :(得分:1)
在application.rb文件中添加config.assets.precompile += Ckeditor.assets
答案 2 :(得分:1)
我遇到了同样的情况。就我而言,我暂时从application.js
删除了与ckeditor相关的js。具体来说,这两行:
//= require ckeditor/override
//= require ckeditor/init
然后,我将我的应用程序部署到Heroku。如果ckeditor是根本原因,则部署应该成功。
接下来,我恢复了之前的提交并再次部署。此部署应该花费更短的时间,因为只会更改已更改的资产。
就我而言,我成功完成了这次重大部署。我希望这个程序可以帮到你。
答案 3 :(得分:0)
真正有效的解决方案:
1)添加到根.js文件(如application.js
):
//= require ckeditor/override`
//= require ckeditor/init`
2)在此代码中将新的.rake任务创建到“lib”文件夹:
namespace :ckeditor do
desc 'Create nondigest versions of some ckeditor assets (e.g. moono skin png)'
task :create_nondigest_assets do
fingerprint = /\-[0-9a-f]{32}\./
for file in Dir['public/assets/ckeditor/contents-*.css', 'public/assets/ckeditor/skins/moono/*.png']
next unless file =~ fingerprint
nondigest = file.sub fingerprint, '.' # contents-0d8ffa186a00f5063461bc0ba0d96087.css => contents.css
FileUtils.cp file, nondigest, verbose: true
end
end
end
# auto run ckeditor:create_nondigest_assets after assets:precompile
Rake::Task['assets:precompile'].enhance do
Rake::Task['ckeditor:create_nondigest_assets'].invoke
end
在资产之后复制CKeditor文件的非摘要副本:部署时预编译
在那里采取的代码:https://github.com/galetahub/ckeditor
就是这样。
答案 4 :(得分:0)
https://github.com/galetahub/ckeditor的步骤对我有用;
gem供应商的加载编辑器 在您的app / assets / javascripts / application.js中包含ckeditor javascript:
在您的app / assets / javascripts / application.js中包含ckeditor javascript:
//= require ckeditor/init
确保将其放在前面:
//= require_tree .
答案 5 :(得分:-1)
但如果你不想使用那个宝石,那么你也可以轻松地做到这一点。
rake assets:precompile (at local)
commit your public/assets (you do not need to push that public/assets at github).
git push heroku master