Ruby on rails Ruby on Rails Ckeditor在部署时丢失回形针图像资源

Ruby on rails Ruby on Rails Ckeditor在部署时丢失回形针图像资源,ruby-on-rails,ruby-on-rails-4,ckeditor,paperclip,assets,Ruby On Rails,Ruby On Rails 4,Ckeditor,Paperclip,Assets,我有一个RubyonRails网站,在那里我使用了Ckeditor gem。 我用回形针进行了设置,这样我也可以在编辑器中上传图像。 这项工作没有任何问题 问题是当我使用CKeditor部署cloud66服务器时。 这样,通过ckeditor上传的所有图像都会被删除。 (链接仍然相同,只是图像消失了) 如何解决这个问题 代码: 模型>ckeditor>assets.rb module Ckeditor class Asset < ActiveRecord::Base incl

我有一个RubyonRails网站,在那里我使用了Ckeditor gem。

我用回形针进行了设置,这样我也可以在编辑器中上传图像。 这项工作没有任何问题

问题是当我使用CKeditor部署cloud66服务器时。 这样,通过ckeditor上传的所有图像都会被删除。 (链接仍然相同,只是图像消失了)

如何解决这个问题

代码: 模型>ckeditor>assets.rb

module Ckeditor
  class Asset < ActiveRecord::Base
    include Ckeditor::Orm::ActiveRecord::AssetBase
    include Ckeditor::Backend::Paperclip
  end
end
Rails.application.config.assets.version = "1.0"

# Add additional assets to the asset load path
# Rails.application.config.assets.paths << Emoji.images_path

# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )
Rails.application.config.assets.precompile += %w( club.css admin.css )
Rails.application.config.assets.precompile += %w( club.js admin.js )

Rails.application.config.assets.precompile += Ckeditor.assets
Rails.application.config.assets.precompile += %w(ckeditor/*)
config>deploy.rb

# if you want to clean up old releases on each deploy uncomment this:
set :shared_children, shared_children + %w{public/ckeditor_assets}
after "deploy:restart", "deploy:cleanup"

namespace :deploy do
  task :start, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end

  task :stop, :roles => :app do
    # Do nothing.
  end

  desc "Restart Application"
  task :restart, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end

  after 'deploy:update_code' do
    #run "cd #{release_path}; RAILS_ENV=production rake db:create"

    run "cd #{release_path}; RAILS_ENV=production rake db:migrate"
    run "cd #{release_path}; RAILS_ENV=production rake db:seed"
    run "cd #{release_path}; RAILS_ENV=production rake assets:precompile"

    run "ln -s #{shared_path}/public/ckeditor_assets #{release_path}/public/ckeditor_assets"

  end

  desc "Update the crontab file"
  task :update_crontab, :roles => :db do
    run "cd #{release_path} && whenever --update-crontab #{application}"
    run "cd #{release_path}; tail -f log/cron_log.log"
  end
我进入了routes.rb mount Ckeditor::Engine=>“/Ckeditor”

解决方案:

移除

url: "/ckeditor_assets/pictures/:id/:style_:basename.:extension",
path: ":rails_root/public/ckeditor_assets/pictures/:id/:style_:basename.:extension",
在图片模型中,这会将上载文件更改为公用文件夹中的系统文件夹,并防止其编译错误

Ckeditor.setup do |config|

  require "ckeditor/orm/active_record"

end
# if you want to clean up old releases on each deploy uncomment this:
set :shared_children, shared_children + %w{public/ckeditor_assets}
after "deploy:restart", "deploy:cleanup"

namespace :deploy do
  task :start, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end

  task :stop, :roles => :app do
    # Do nothing.
  end

  desc "Restart Application"
  task :restart, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end

  after 'deploy:update_code' do
    #run "cd #{release_path}; RAILS_ENV=production rake db:create"

    run "cd #{release_path}; RAILS_ENV=production rake db:migrate"
    run "cd #{release_path}; RAILS_ENV=production rake db:seed"
    run "cd #{release_path}; RAILS_ENV=production rake assets:precompile"

    run "ln -s #{shared_path}/public/ckeditor_assets #{release_path}/public/ckeditor_assets"

  end

  desc "Update the crontab file"
  task :update_crontab, :roles => :db do
    run "cd #{release_path} && whenever --update-crontab #{application}"
    run "cd #{release_path}; tail -f log/cron_log.log"
  end
url: "/ckeditor_assets/pictures/:id/:style_:basename.:extension",
path: ":rails_root/public/ckeditor_assets/pictures/:id/:style_:basename.:extension",