回形针给错误的网址。怎么修?

时间:2011-12-19 10:07:45

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 paperclip

我在模型中的回形针路径是:

has_attached_file :image, :path => ":rails_root/app/assets/images/article_images/:id/:style_:basename.:extension"

但是当我打电话给article.image.url时,这是我得到的网址(已损坏):

/system/images/64294/original/fantastik.jpg?1324288670

3 个答案:

答案 0 :(得分:6)

您还需要设置URL,您想要的是:

has_attached_file :image,
                   :path => ":rails_root/app/assets/images/article_images/:id/:style_:basename.:extension"
                   :url => "/app/assets/images/article_images/:id/:style_:basename.:extension"

我唯一要问的是,如果你将它们存放在一个好地方。通常情况下,他们会进入

/public/...

或者像s3这样的其他服务。但是,这就是修改URL的方式

希望这有帮助!

答案 1 :(得分:0)

像@andrewpthorp一样提到这是因为你只切换路径,但你可以做得更干嘛

paperclip默认值:

:url                   => "/system/:attachment/:id/:style/:filename",
:path                  => ":rails_root/public:url",

您可以看到url可以是路径的一部分,因此您的配置应如下所示:

 has_attached_file :image,
   :url => "/app/assets/images/article_images/:id/:style_:basename.:extension",
   :path => ":rails_root:url"

小心,usualy服务器(apache,nginx)仅从公共目录提供文件。

has_attached_file的更多选项,您可以找到here

答案 2 :(得分:0)

这是解决问题的方法:default_url:

:default_url => ActionController::Base.helpers.asset_path('empty-event-cover.png')