ソフトレイヤーVPSでキャリアウェーブをセットアップしました。Carrierwave には、ファイルをローカル ストレージに保存するオプションがあります。
にシンボリックリンクを使用するpublic/images
とshared_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 と Carrierwave、 Carrierwave ファイルも Capistrano で検索しまし た
ディレクトリにアクセスできるようにするには、特定の権限を設定する必要がありますか? 例えば:
chmod 755 shared_path/images
有効な解決策が見つかりません。助けていただければ幸いです。
前もって感謝します。