【发布时间】:2011-09-23 21:48:55
【问题描述】:
image_path 仅返回路径(无主机)。
url_for 帮助器不会接受单一路径,所以像 url_for(image_path('image.png')) 这样的东西不起作用。虽然ActionDispatch::Http::Url.url_for 中的内部url_for 似乎可以解决问题(source),但它似乎没有公共接口。
我应该怎么做呢?最终,最好有一个像 image_url 这样的函数,它像 url_for 那样对路由起作用,这样我就可以调用 image_url('image.png') 并在给定所有 default_url_options 的情况下获取绝对 URL。
【问题讨论】:
-
这个博客有一个可以使用的sn-p:stick.gk2.sk/blog/2009/12/image_url-function-in-ruby-on-rails
-
@Spike:这种方法的缺点是它忽略了默认的 url 选项。例如,无法手动或通过应用配置中的 default_url_options 哈希来覆盖推断的请求参数。
-
@SpikeGronim 这不适用于延迟作业,因为请求将为空
-
对于 Rails ~> 4.2.1,使用
:host选项的asset_url和朋友,例如asset_url('my_image.png', host: root_url)。见asset_url docs。
标签: ruby-on-rails ruby-on-rails-3