创建新资产标签帮助程序的最佳方法是什么,除了指向s3之外,其工作方式与image_tag完全相同?
所以我希望这件事发生:
image_path "foo.jpg" # => "/assets/foo.jpg" (default behavior)
s3_image_path "bar.jpg" # => "http://site.s3.amazon.com/assets/bar.jpg"
这样做的最佳方法是在application_helper.rb中创建一个新助手吗?
答案 0 :(得分:3)
我刚刚在application_helper.rb中编写新的帮助程序,模仿默认的资产助手,如下所示:
def s3_image_path(filename)
"http://site.s3.amazonaws.com/assets/#{filename}"
end
def s3_image_tag(filename, options={})
image_tag(s3_image_path(filename), options)
end
因此s3_image_tag("image.jpg")
将指向http://site.s3.amazonaws.com/assets/image.jpg
。
答案 1 :(得分:0)
如果site.s3 ..不在rails应用程序中而且没有使用asset_pipeline,那么只需在图像src中直接引用url。
如果s3是你的应用程序站点,那么只需在它将用于的上下文中编写一个新助手。
或http://site.s3.amazon.com/assets/bar.jpg的内容看起来像
<img src="<%=@root_url%>/assets/bar.jpg" />
那么,为什么另一个不同?我的意思是你为什么有两个?
修改强>
我要做的就是在应用程序助手中有一个字符串,其中包含托管站点的URL。然后是帮助方法返回图像tag("img", :src => "#{s3_image_link}/bar.jpg")