2012-07-30 32 views
1

我有一個rake任務,它將我從API緩存的圖像上傳到我的S3存儲桶。在我看來,我嘗試輸出圖像,但它似乎不工作。我想要做的是將圖像緩存到我的文件系統,將它們發送到S3,我想使用S3存儲桶中的圖像位置而不是我的文件系統。我的代碼看起來像下面:如何將image_tag與遠程URL一起使用?

在我的rails控制檯,我這樣做只是爲了檢查圖像網址:

1.9.3p125 :002 > a.image 
=> http:://s3-eu-west-1.amazonaws.com/ramen-hut/pictures/1.jpg?1343645629 
1.9.3p125 :003 > 

我在我的應用程序使用回形針,是否應該將網址添加爲「HTTP: ://「?似乎很奇怪。在我的index.html.erb的代碼如下所示:

<li> 
    <%= movie.title %> 
    <%= image_tag movie.image.url %> 
</li> 

但是這會導致下面的HTML:

<li> 
    Cowboy Bebop 
    <img alt="1" src="/assets/http:://s3-eu-west-1.amazonaws.com/ramen-hut/pictures/1.jpg?1343645629"> 
</li> 

它爲什麼我的網址之前包括「/資產」 /?

我配置了回形針來設置我的歐洲S3桶的圖像url,遵循教程。所以在我的environment.rb,我有這樣的:

#Signature correction for Paperclip and AWS 
AWS::S3::DEFAULT_HOST = "s3-eu-west-1.amazonaws.com" 

,我有我的initialisers目錄與此代碼的AWS-signature.rb文件:

#Makes Paperclip use the correct URL for images 
Paperclip.interpolates(:s3_eu_url) { |attachment, style| 
    "#{attachment.s3_protocol}://s3-eu-west-1.amazonaws.com/#{attachment.bucket_name}/#{attachment.path(style).gsub(%r{^/}, "")}" 
} 

回答

2

有一個問題與URL:http:://而不是http://所以image_tag不知道它是一個絕對的URL。

你如何生成這些網址?寶石還是你自己的代碼?