2016-08-04 58 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)。