2016-08-04 4 views
0

안녕하세요 저는 현재 맞춤 도메인 이름으로 GoDaddy와 Rails 및 Heroku를 사용하여 사이트를 만들고 있습니다.S3 및 Cloudfront가있는 Carrierwave에서 이미지가 표시되지 않음

나는 Fog, Amazon S3를 사용하여 Carrierwave를 사용하고 있으며 Heroku 도메인 이름이있는 클라우드 프런트를 Origin Domain으로 설정했습니다. 현재 사이트는 이미지를 매우 느리게로드하므로 클라우드 프런트를 설정하지만 내 캐리어 웨이브의 구성 파일은 클라우드 프런트 서버에 대한 URL을 변경하지 않는 것 같습니다. 여기 carrierwave 설정 파일이 있습니다. 사용자가 Carrierwave를 통해 이미지를 업로드 한 다음 내 클라우드 프론트에 다시 제공 할 수 있기를 바랍니다. config.fog_public이 거짓하지만 난 변경할 때 URL이 지금은 정확하지만, 이미지를 찾을 수없는 진정한 = config.fog_public로서

CarrierWave.configure do |config| 
config.fog_provider = 'fog/aws'      # required 

config.fog_credentials = { 
provider:    'AWS',      # required 
aws_access_key_id:  'acesskey',      #  required 
aws_secret_access_key: 'secretkey',      # required 
region:    'us-east-1',     # optional, defaults to 'us-east-1' 
} 

config.fog_directory = 'directory'       # required 
# config.fog_public  = false # optional, defaults to true 
config.asset_host = 'randomjunk.cloudfront.net' 
config.fog_public = false 
config.fog_attributes = { 'Cache-Control' => "max-age=#{365.day.to_i}" } #  optional, defaults to {} 
end 

그것은 오래 사용할 수 있습니다. 내 구성 설정과 관련이 있습니까? 아니면 Heroku로 클라우드 프론트를 잘못 설정 했습니까?

답변

0

파일을 처음 만들 때 사용한 설정에 따라 다릅니다. config.fog_public = false으로 만든 경우 개인 파일이되고 s3에 대한 특수 서명 된 URL로 액세스가 이루어집니다. 내 생각에 자산 호스트는 공개 파일 (즉,보고있는 파일)에만 사용됩니다. fog_public = true으로 파일을 업로드하면 찾을 수 없다고 생각합니다. 당신은 또한 그것을 사실로 설정하고 그 속성을 바꾸기 위해 이미지를 다시 저장할 수 있습니다. (여기에 대한 자세한 내용은 확실하지 않지만 확실히 공개 할 수 있어야합니다.)