0

我在 softlayer VPS 上设置了carrierwave 。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使用 Capistrano 的 Carrierwave 文件

我是否需要为要访问的目录设置特定权限?例如:

chmod 755 shared_path/images

无法找到任何可行的解决方案。非常感谢帮助。

提前致谢。

4

1 回答 1

0

明白了,这个不见了

Options FollowSymLinks

apache权限错误

虽然我已经Options -Indexes +FollowSymLinks MultiViews

<Directory></Directory>

想知道为什么+FollowSymLinks不起作用

于 2013-05-13T16:06:04.267 回答