2016-08-04 90 views
0

你好,我目前正在使用Rails和Heroku以及GoDaddy建立一个自定义域名的网站。载波与S3和Cloudfront不显示图像

我正在使用Carrierwave with Fog,Amazon S3,并已将我的Heroku域名设置为源域作为源域。目前,该网站加载图像速度非常慢,这就是为什么我设置了一个云端,但我的载波的配置文件似乎并没有改变与云端对应的URL。这是我的carrierwave配置文件。我希望用户能够通过Carrierwave上传图片,然后通过我的云端服务返回。

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 

它的工作原理,只要config.fog_public是假的,但是当我将其更改为config.fog_public =真正的URL现在正确的,但图像没有找到。这是否与我的配置设置有关,或者我是否用Heroku错误地设置了我的云端?

回答

0

它取决于最初创建文件时使用的设置。如果它们是用config.fog_public = false创建的,它们将是私人文件,访问将通过一个特殊的签名url来完成。我认为资产主机只用于公开的文件(因此您所看到的)。如果您使用fog_public = true上传文件,那么我认为您不会看到未找到的文件。您也可以将其设置为true并重新保存图像以更改该属性(我对此处的细节不太确定,您当然应该可以将它们更改为public)。