8

我正在尝试在我的应用程序中使用 default_url,但我使用 S3 存储图像。我不确定我需要在那里输入什么 URL,或者我是否必须创建一个假图像才能将所有内容放在那里。

由于我的图像总是通过 S3 渲染,我不知道如果我只是在我的公共文件夹中放入一些默认图像是否会起作用。它现在似乎不起作用 - 我也只有一张图片,我知道它必须调整大小。我可以手动将调整大小的图像放在那里,但我仍然不确定默认使用哪个 URL。请帮忙 :)

4

2 回答 2

22

我在公用文件夹中使用带有默认图像的 S3 回形针。它工作正常。我的 default_url 语句如下所示:

:default_url => '/images/:attachment/missing_:style.png'

这意味着对于我的名为 avatar 的附件,使用大小样式设置,我必须创建这些图像并将其放在公共目录中:

  • /images/avatar/missing_small.png
  • /images/avatar/missing_large.png

有据可查

供您参考,或者如果问题确实出在其他地方,这是我的完整回形针声明:

has_attached_file :avatar,
  :styles => { :small => '60x60#', :large => '300x300#' }, :default_style => :large,
  :storage => :s3,
  :default_url => '/images/:attachment/missing_:style.png',
  :path => "users/:id/avatar/:style.:extension",
  :bucket => "bucket name",
  :s3_credentials => {
    :access_key_id => "access key id",
    :secret_access_key => "secret access key"
  },
  :url => ":s3_alias_url", # These two are only required when you alias S3 - e.g. want to use cdn.example.com rather than s3.amazonaws.com
  :s3_host_alias => "my.aws.alias" 
于 2009-11-23T09:29:48.350 回答
4

试试这个: :default_url => ActionController::Base.helpers.asset_path('missing.png')

于 2014-04-05T21:39:57.323 回答