什么是创建一个新的资产标签助手的最佳方法,它的工作方式与 image_tag 完全相同,除了指向 s3?
所以我希望发生这种情况:
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 中创建一个新的助手吗?
什么是创建一个新的资产标签助手的最佳方法,它的工作方式与 image_tag 完全相同,除了指向 s3?
所以我希望发生这种情况:
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 中创建一个新的助手吗?
我刚刚在 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
。
如果 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")