2009-11-23 15 views
8

Estoy tratando de usar la opción default_url en mi aplicación pero almaceno las imágenes con S3. No estoy seguro de qué URL debo poner allí o si tengo que crear una imagen falsa solo para obtener todo allí.imagen predeterminada del clip de rieles con S3

Dado que mis imágenes siempre se procesan a través de S3, no sé si funcionaría si simplemente colocara algunas imágenes predeterminadas en mi carpeta pública. Parece que no funciona ahora. También tengo una imagen allí, y sé que tiene que cambiar el tamaño. Puedo poner manualmente las imágenes redimensionadas allí, pero todavía no estoy seguro de qué URL usar de manera predeterminada. Por favor ayuda :)

Respuesta

22

Uso paperclip con S3 con imágenes predeterminadas en la carpeta pública. Funciona bien. Mi declaración default_url se ve así:

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

lo que significa que para mi archivo adjunto llamado avatar, configuración con los estilos de pequeños y grandes, hay que crear y poner estas imágenes en el directorio público:

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

es pretty well documented.

Para su referencia, o en el caso de que el problema es realmente otro lugar, aquí está mi declaración clip completo:

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" 
+0

no funcionó para mí. todos mis archivos adjuntos servidos desde S3, pero default_url a través de la canalización de activos por alguna razón. – bershika

+0

¿necesita ser nombrado avatar ???? – Jwan622

+0

No necesitaba la ruta completa. Aparentemente, la default_url solo mira en la carpeta de imágenes. – Jwan622

4

probar esto: :default_url => ActionController::Base.helpers.asset_path('missing.png')

+0

Esta es la solución correcta porque si necesita modificar su imagen predeterminada, automáticamente destruirá la memoria caché del navegador y descargará la imagen nueva y actualizada. – Chloe

Cuestiones relacionadas