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{^/}, "")}"
}