0

Apache2、パッセンジャー、レール3.2.3、およびルビー1.9.3を実行しているLinux ubuntu 10.04サーバーへのファイルアップロードを処理するためにPaperclipを使用するレールアプリを展開しました。

私のセットアップは開発では完全にうまくいきましたが、今では本番環境では画像が保存されません。

レールがファイルのアップロードを処理し、XSendFile の使用とインストールも試行するように、production.rb の次の行をコメントアウトしました。

# Specifies the header that your server uses for sending files
  # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx

そして私のpicture.rb

attr_accessible :photo_file_name, :photo_file_size, :photo_content_type, :photo, :splash_image
  validates_presence_of :photo_file_name, :photo_content_type, :photo_file_size


  has_attached_file :photo,
    styles: {
      thumb: "150x150>"
    },
       url: "/assets/splash_images/:id/:style/:basename.:extension",
       path: ":rails_root/public/assets/splash_images/:id/:style/:basename.:extension"

    validates_attachment_size :photo, :less_than => 25.megabytes
    validates_attachment_content_type :photo, content_type: /image/

何が起こっているのか知っている人はいますか?どうもありがとう

4

2 に答える 2

3

You need to specify paths if ImageMagick is not installed on the default paths. For windows users, do something like this in initializers/paperclip.rb:

require "paperclip" require 'rbconfig' is_windows = (RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/)

Paperclip.options[:command_path] = 'C:\ImageMagick' if is_windows Paperclip.options[:swallow_stderr] = false

find the location of "identify" in your imagemagick path and put that in here. Of course, you need to put the linux path in there. (/usr/bin/ ...)

于 2012-10-09T13:02:15.213 に答える
2

私を正しい方向に向けてくれたMeduzaとHugoに感謝します。画像のアップロードと保存を正常に行うには、Linux サーバーに Imagemagick をインストールし、次のように画像パスに書き込み権限を付与する必要がありました。

ルートから実行していない場合は、sudo を追加します

 apt-get install imagemagick
 apt-get install libmagick9-dev
 gem install rmagick

 chmod -R 777 app/app_name/public/assets/image_folder
于 2012-10-09T13:44:30.247 に答える