0

ソフトレイヤーVPSでキャリアウェーブをセットアップしました。Carrierwave には、ファイルをローカル ストレージに保存するオプションがあります。

にシンボリックリンクを使用するpublic/imagesshared_path/images、画像はアップロードされますが、レンダリングされません。そして、シンボリックリンクを削除して画像を直接保存するとpublic/images、画像を見ることができますが、後のリリースにはそれらの画像がないため、ほとんど役に立ちません。

私のアップローダークラスapp/uploader/image_uploader.rbは次のようになります

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

  storage :file

  def default_url
    "/assets/default.gif"
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end

  def store_dir
    "images"
  end
end

デプロイ スクリプトでシンボリック リンクを使用しました

    set :shared_children, shared_children + %w{public/images}

    desc "Symbolic Link for Uploads"
      task :symlink_uploads, :roles => [:app, :web] do
         run "rm -rf #{release_path}/public/images &&
              ln -nfs #{shared_path}/images  #{release_path}/public/images"
    end

    after 'deploy:update_code', 'deploy:symlink_uploads'

パーミッションも設定してみました。しかし、まだアップロードした画像が表示されません。

ブラウザから画像にアクセスしようとすると、次のメッセージが表示されます

Forbidden
You don't have permission to access /images/my_profile.jpg on this server.
Apache/2.2.14 (Ubuntu) Server at example.com Port 80

Capistrano と CarrierwaveCarrierwave ファイルも Capistrano で検索しまし た

ディレクトリにアクセスできるようにするには、特定の権限を設定する必要がありますか? 例えば:

chmod 755 shared_path/images

有効な解決策が見つかりません。助けていただければ幸いです。

前もって感謝します。

4

1 に答える 1