2012-10-10 2 views
4

나는 부분 "person.css.erb"가 :정의되지 않은 메서드`asset_data_uri '- 레일 3.2

undefined method `asset_data_uri' 

레일 자산 파이프 라인 :

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

부분이 렌더링은 실패 가이드에는이 방법을 사용하는 예가 나와 있습니다. http://guides.rubyonrails.org/asset_pipeline.html

비슷한 도우미가 작동합니다. asset_path. 레일 3.2.8을 사용하고 있습니다. 가이드가 구형입니까? 메소드 이름이 바뀌 었습니까? 이 도우미를 포함 시키려면 특별한 것을해야합니까?

답변

12

내보기 (asset_path 근무)에서 asset_data_uri을 사용할 때 동일한 오류가 발생하여 이유를 파악하지 못했습니다. 이것은 정확히 문제가되지 않습니다,하지만 난 내 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 
+0

을하지만, 분명히 그것은 asset_data_uri'는 자산 파이프 라인에서 작동하는 '것을 디자인입니다 만 보기가 아닙니다 : [rails/rails # 14898] (https://github.com/rails/rails/issues/14898). 도움 주셔서 감사합니다, 그것은 대단히 유용합니다! – lime

관련 문제