私のレールプロジェクトでckeditor WYSIWYG text editorを使用しています。特に:プロダクションモードで画像アップロードを設定する際に問題があります。Rails:ckeditor gemがnginxとパッセンジャーの生産モードで動作しない
これは開発モードではうまく機能し、プーマを使用している間はプロダクションモードでもローカルで動作します。をクリックして写真をアップロードし、Browse Server
ボタンをクリックします。それはすぐに私がそれらを期待する写真を探します:/assets/ckeditor_assets/pictures
の中に。
問題は、nginxを使用して運用モードで動作するようになっています。生産モードでnginxを使用すると、エラーメッセージ404 Not Found
が返されます。私は私のサーバーのログを見て、ここではそれが言うことではありません:
"は/ var/www /のMYAPP/CKEditorバージョン/写真は" 失敗した(2:そのようなファイルまたはディレクトリ)
ので、いくつかのために私のパブリックディレクトリ内にckeditor
というディレクトリがあります(私のパブリックディレクトリへのシンボリックリンクなので)。なぜ私のアプリpublic/assets/ckeditor_assets
ディレクトリ内で探している必要があるときに、なぜckeditorがckeditor
ディレクトリを探しているのかわかりません。
私のパブリックディレクトリ内にckeditor
ディレクトリを作成し、その中にpictures
ディレクトリを置くことでこれを解決しようとしました。しかし、私がそれをしたとき、私は403 Forbidden
エラーを受けました。
私はconfig/initializers/ckeditor.rb
ファイル内でこの行があることを通知しました:だからそれを私が絵を行くとフェッチするCKEditorバージョンを望んでいたが、残念ながらそれはしなかった私はハードコード打撃を与えるために
# Customize ckeditor assets path
# By default: nil
#config.asset_path = "http://www.example.com/assets/ckeditor/"
いずれかの作業。
私に教えてください。ありがとう!私は先に行くと、すべての手がかりを提供した場合の私のckeditor::picture
モデルファイルが表示されます:私の仲間はそれを考え出した
class Ckeditor::Picture < Ckeditor::Asset
has_attached_file :data,
:url => "/assets/ckeditor_assets/pictures/:id/:style_:basename.:extension",
:path => ":rails_root/public/assets/ckeditor_assets/pictures/:id/:style_:basename.:extension",
:styles => { :content => '800>', :thumb => '118x100#' }
validates_attachment_presence :data
validates_attachment_size :data, :less_than => 2.megabytes
validates_attachment_content_type :data, :content_type => /\Aimage/
def url_content
url(:content)
end
end