Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rails 3.2 and modifications on css file not reflecting until assets:precompile

I'm creating a new rails 3.2 project and everything is loading fine except the last modifications I made on css files.

If I do app/assets/stylesheets/application.css change anything on this file, I can't see the changes on the browser until I run the following command at console:

bundle exec rake assets:precompile RAILS_ENV=development

my config/environment/development.rb file.

Sample::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

Any help?

like image 452
Kleber S. Avatar asked Feb 11 '12 18:02

Kleber S.


People also ask

How do you Precompile rails assets?

To compile your assets locally, run the assets:precompile task locally on your app. Make sure to use the production environment so that the production version of your assets are generated. A public/assets directory will be created. Inside this directory you'll find a manifest.

What is assets Precompile?

rails assets:precompile is the task that does the compilation (concatenation, minification, and preprocessing). When the task is run, Rails first looks at the files in the config.assets.precompile array. By default, this array includes application.js and application.css .

How does Rails asset pipeline work?

The asset pipeline provides a framework to concatenate and minify or compress JavaScript and CSS assets. It also adds the ability to write these assets in other languages such as CoffeeScript, Sass and ERB. Prior to Rails 3.1 these features were added through third-party Ruby libraries such as Jammit and Sprockets.


1 Answers

The problem was that I'd compiled the assets, so the rails was serving the already compiled version of these files.

In this case, all you have to do is, just delete the already generated files, like application.css and application.css.gz and you well get it working again.

Hope it helps someone.

like image 135
Kleber S. Avatar answered Sep 27 '22 18:09

Kleber S.