如何在本地使用Rails、Paperclip和Fog?

3

我希望设置我的开发环境以在本地主机存储和获取图像,这些内容与IT技术有关。我已经成功将图片保存到正确的路径上,但是我找不到一种方法来加载页面并从资产管道中检索它们。

我在我的模型上有这个:

has_attached_file :cover, :styles => {:small => '80x80'},
                                    :storage => :fog,
                                    :fog_credentials => {:provider => "Local",
                                                         :local_root => "#{Rails.root}/public"},
                                    :fog_directory => 'system/migos',
                                    :fog_host => "http://localhost:3000/assets",
                                    :default_url => '/assets/missing/:attachment/missing_:class_:style.png',
                                    :path => ':rails_env/:class/:attachment/:id_partition/:style/:filename'

文件已正确保存到以下位置: public/system/migos/development/workgroups/covers/000/000/011/small/logo.png

在加载页面时,它尝试从此处获取文件: /assets/localhost/development/workgroups/covers/000/000/011/small/logo.png?1346598225 但是失败了。

我错过了什么吗?


你能给我展示一下你用来检索图片的代码吗? - M.Octavio
1个回答

3
 has_attached_file :photo,
   :url  => "/assets/vehicles/:id/:style/:basename.:extension",
   :path => ":rails_root/public/assets/vehicles/:id/:style/:basename.:extension"

请尝试使用上述代码,并检查URL和路径,它将返回下一个图像地址。
http://localhost:3000/assets/vehicles/1/original/72854906.jpg?1346092386

文件夹结构是assets/vehicles/1/original。


嗯,类似这样做可以,但我尝试着(也许是错误的)在本地主机上使用Fog。在这里https://github.com/thoughtbot/paperclip#defaults中有一个例子,但当页面尝试加载图像时它也失败了。 - Victor Martins
是的,我认为明确使用localhost:3000作为fog主机并不好,对于开发环境可能可以工作,但不一定适用于TQA或生产环境。例如,在我的情况下,我将部署到端口80下的Tomcat服务器。我认为你可以用符号:rails_root替换它(http://localhost:3000/)。 - M.Octavio
Fog Local 现在与 Paperclip 不兼容,fog_host 可以为空 (''),这将进行相对查找。但是,在构造 URL 时设置 fog_directory 似乎被忽略了。如果我找到解决方案,我会发布一个答案。 - PhilT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接