Running "rake assets:clobber assets:precompile" will generate files like "application-xxx.css" with incorrect urls after upgrading to Rails 4.
For example url(/fields/xxx.png) when it should be url(/assets/fields/xxx.png). For some unknown reason it worked once in development mode, but after running rake assets:clobber I can't get it to work again...
Any ideas why image-url(fields/sprite.gif) is generating url(/fields/sprite.gif) instead of url(/assets/fields/sprite.gif)?
It happens both in my staging server (running 1.9.3) and in my dev machine (Ruby 2.0.0-p1).
I'm stuck with this enigma.
Any help is greatly appreciated.
Thanks in advance,
Rodrigo.
I think I’ve narrowed down the problem. For some reason this block
isn’t executed when I run rake assets:precompile:
https://github.com/rails/sprockets-rails/blob/master/lib/sprockets/railtie.rb#L86
ActiveSupport.on_load(:action_view) do…
Maybe that's because I have a class under "lib" that relies on
ActionView::Helpers::NumberHelper, and then I require ‘action_view’.
So, when the hook is registered ‘action_view’ might already be
loaded and the event won’t be triggered. Just guessing of course as
I couldn’t find any documentation about how that on_load method
works.
Then I've written something like this to fix the assets
precompilation for my application:
def fix_asset_precompiling
config = Rails.application.config
Rails.application.assets.context_class.tap do |c|
c.assets_prefix = config.assets.prefix
c.digest_assets = config.assets.digest
c.config = config.action_controller
end
end
I'm not sending a pull request because I'm not sure what is the
proper way of fixing it. But I can tell you that if you replace the
line above with “begin” it works.
Open a github issue for the problem; it won’t be addressed otherwise.
I would create an issue if I could replicate the issue in a new
application, but I couldn’t yet.
If I can isolate the problem I'll create a new issue.
Ok, I could finally replicate the issue in development mode for a
new application when I disable the turbolinks gem.
In my application it also happens in production and all other
environments but at least if this is fixed for development mode it
could also fix for my other environments.
I've created this issue:
https://github.com/rails/rails/issues/9461
Here is an application demonstrating the issue:
[https://github.com/rosenfeld/assetsbug](https://github.com/rosenfeld/assetsbug)