4

我有部分“person.css.erb”:

 #caption {
   background-image: url(<%= asset_data_uri("caption.png") %>); 
   text-align: center;
 }

当部分渲染失败时:

undefined method `asset_data_uri'

rails 资产管道指南有一个使用此方法的示例:http: //guides.rubyonrails.org/asset_pipeline.html

类似的助手工作,例如。资产路径。我正在使用 Rails 3.2.8。指南过时了吗?方法改名了吗?我是否需要做一些特别的事情才能让这个助手包含在内?

4

1 回答 1

12

asset_data_uri在我的视图中使用时我遇到了同样的错误(asset_path工作)并且无法弄清楚为什么。这不完全是您的问题,但我可以通过将其添加到我的application_helper.rb

# Copied from Sprockets::Context.asset_data_uri, and slightly modified.
def asset_data_uri path
  asset = Rails.application.assets.find_asset path

  throw "Could not find asset '#{path}'" if asset.nil?

  base64 = Base64.encode64(asset.to_s).gsub(/\s+/, "")
  "data:#{asset.content_type};base64,#{Rack::Utils.escape(base64)}"
end
于 2013-05-15T15:00:29.203 回答