Reputation: 10287
I'm currently having some trouble with asset Pipeline on Ruby on Rails.
I'm using an E-Commerce solution (Spree), and in the documentation, there is this in the documentation :
[...] you can improve performance significantly by using a special precompile task.
$ bundle exec rake assets:precompile:nondigest
Using the precompile rake task in development will prevent any changes to asset files from being automatically included in when you reload the page. You must re-run the precompile task for changes to become available.
My problem is that after executing the command, all my CSS have to be recompiled manually to be effective. I can't find the "reverse" command for this.
I tried to delete public/assets then reboot, but nothing work.
In my application.rb, i have this line for assets :
config.assets.enabled = true
Edit : My development.rb
Mystore::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
# Log error messages when you accidentally call methods on nil.
config.whiny_nils = true
# Show full error reports and disable caching
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false
# Print deprecation notices to the Rails logger
config.active_support.deprecation = :log
# Only use best-standards-support built into browsers
config.action_dispatch.best_standards_support = :builtin
# Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict
# Log the query plan for queries taking more than this (works
# with SQLite, MySQL, and PostgreSQL)
config.active_record.auto_explain_threshold_in_seconds = 0.5
# Do not compress assets
config.assets.compress = false
# Expands the lines which load the assets
config.assets.debug = true
end
If someone has a clue, i'm open (:
Thank you
Upvotes: 2
Views: 688
Reputation: 10287
just found what's the problem :
Spree is storing the name of logo image in database. So, rake tmp:clear was not working. The CSS seems to be OK, changes are applied immediatly.
Here is the response : http://osdir.com/ml/spree-user/2012-12/msg00147.html
I dunno if I have to report to Spree the bug, or if it's not one. Anyway, it's weird.
Thank you to all of you guy !
Upvotes: 0
Reputation: 4315
Just in case : can you check for a file , named manifest.yml
? It should be in your /assets/
directory . If it exists , you can see that there are digested names inside . Try to comment them or to remove them and we'll see...
Upvotes: 1
Reputation: 9691
Erowlin, when you precompile your assets, any changes you make to your CSS will NOT be applied. This is because its already reading from application.css / application.js where all your assets have be squashed into those 2 files.
So, if you want to make any changes to your assets, you cannot precompile them first.
For Spree, a good time to use the technique you mentioned would be be if you're working on code that doesn't require touching the CSS/Javascript.
Upvotes: 0
Reputation: 10473
Usually you can run:
$ bundle exec rake RAILS_ENV=development assets:clean
That should clear out any precompiled assets. It sounds like you are in development mode, but if you're in production, remove the RAILS_ENV=development
portion.
Upvotes: 1
Reputation: 87406
Hopefully you are using version control. Type "git diff" or the equivalent to see exactly what files changed that might be causing this new behavior of your app.
Upvotes: 0