2009-11-23 3 views
8

내 응용 프로그램에서 default_url을 사용하려고하지만 S3를 사용하여 이미지를 저장합니다. 나는 거기에 넣어야 할 URL이 무엇인지, 아니면 모든 것을 가져 오기 위해 가짜 이미지를 만들어야하는지 잘 모르겠습니다.레일 클립 클립 S3 기본 이미지

내 이미지는 항상 S3을 통해 렌더링되므로 내 공용 폴더에 일부 기본 이미지를 넣으면 제대로 작동하는지 알 수 없습니다. 현재 작동하지 않는 것 같습니다. 또한 이미지가 하나 밖에 없으며 크기를 조정해야한다는 것을 알고 있습니다. 크기가 조정 된 이미지를 수동으로 넣을 수는 있지만 기본적으로 어떤 URL을 사용할 지 아직 확실하지 않습니다. 도와주세요 :)

답변

22

공용 클립에 기본 이미지가있는 S3 클립 클립을 사용합니다. 그것은 잘 작동합니다. 내 DEFAULT_URL 문은 다음과 같습니다 내 첨부 파일 아바타, 설치 스타일 크고 작은와 이름, 나는 작성하고 공개 디렉토리에서 이러한 이미지를 넣어해야한다는 것을 의미

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

:

/images/avatar/missing_large.png

  • 을 missing_small.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" 
    
  • +0

    나를 위해 작동하지 않았다 참고로

    하거나 문제가 정말 다른 곳에서 인 경우에, 여기 내 전체 클립 문입니다. 내 모든 첨부 파일은 S3에서 제공되었지만 어떤 이유로 든 자산 파이프 라인을 통해 default_url을 제공합니다. – bershika

    +0

    avatar라는 이름이 필요합니까 ???? – Jwan622

    +0

    전체 경로가 필요하지 않았습니다. 분명히 default_url은 이미지 폴더를 찾습니다. – Jwan622

    4

    이 밖으로 시도 : :default_url => ActionController::Base.helpers.asset_path('missing.png')

    +0

    기본 이미지를 수정해야하는 경우 브라우저의 캐시를 자동으로 바꿔 새로운 이미지를 다운로드하기 때문에 올바른 해결책입니다. – Chloe