I am getting the following when trying to precompile my assets locally
RAILS_ENV=production bundle exec rake assets:precompile
rake aborted!
Sprockets::NotImplementedError: Custom asset_path helper is not implemented
Extend your environment context with a custom method.
environment.context_class.class_eval do
def asset_path(path, options = {})
end
end
/Users/cman/.rvm/gems/ruby-2.2.2@jbd-ruby2.2.2/gems/sprockets-3.6.0/lib/sprockets/context.rb:198:in `asset_path'
/Users/cman/.rvm/gems/ruby-2.2.2@jbd-ruby2.2.2/gems/sprockets-3.6.0/lib/sprockets/context.rb:218:in `font_path'
/Users/cman/.rvm/gems/ruby-2.2.2@jbd-ruby2.2.2/gems/font-awesome-rails-4.6.1.0/app/assets/stylesheets/font-awesome.css.erb:15:in `_evaluate_template'
I can't for the life of me figure out why this is happening - any suggestions as how to tackle would be greatly appreciated!
Update
I am able to precompile only if I add an initializer with the following:
Rails.application.assets.context_class.class_eval do
def asset_path(path, options = {})
return ''
end
end
However, if I do so, when I push to my staging environment, the glyphicons from Bootstrap have an empty path and thus don't render:
font-face{font-family:'Glyphicons Halflings';src:url("");src:url("") format("embedded-opentype"),url("") format("woff"),url("") format("truetype"),url("")
UPDATE 2
If I modify the initializer to the below, I get a path in my precompiles bootstrap asset for glypicons, but it is not to the precompiled Glyphicon file, it's to the non compiled asset path:
Rails.application.assets.context_class.class_eval do
def asset_path(path, options = {})
#return ''
"/assets/#{path}"
end
end
@font-face{font-family:'Glyphicons Halflings';src:url("/assets/bootstrap/glyphicons-halflings-regular.eot");src:url("/assets/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"),url("/assets/bootstrap/glyphicons-halflings-regular.woff") format("woff"),url("/assets/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"),url("/assets/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular")
Here is my gemfile.lock as it relates to assets/sprockets gems:
bootstrap-sass (3.1.1.0)
sass (~> 3.2)
rails (4.2.5.2)
actionmailer (= 4.2.5.2)
actionpack (= 4.2.5.2)
actionview (= 4.2.5.2)
activejob (= 4.2.5.2)
activemodel (= 4.2.5.2)
activerecord (= 4.2.5.2)
activesupport (= 4.2.5.2)
bundler (>= 1.3.0, < 2.0)
railties (= 4.2.5.2)
sprockets-rails
sass (3.2.19)
sass-rails (4.0.5)
railties (>= 4.0.0, < 5.0)
sass (~> 3.2.2)
sprockets (~> 2.8, < 3.0)
sprockets-rails (~> 2.0)
You can easily overcome this problem. Although your current problem is more a version related problem and not sure if you bundle update properly. But there is alternative solution. Try installing the following gem: