Erowlin
Erowlin

Reputation: 10287

Asset Pipeline - Trouble to get my CSS alive

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

Answers (5)

Erowlin
Erowlin

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

R Milushev
R Milushev

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

Benjamin Tan Wei Hao
Benjamin Tan Wei Hao

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

Marc Baumbach
Marc Baumbach

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

David Grayson
David Grayson

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

Related Questions