the rails present not images bootstrap asset ruby-on-rails ruby-on-rails-3 asset-pipeline sprockets rails-sprockets

ruby-on-rails - rails - the asset is not present in the asset pipeline



¿Cómo deshabilitar el registro de mensajes de canalización de activos(ruedas dentadas) en Rails 3.1? (14)

Coloque el siguiente código en config/initializers/quiet_assets.rb

if Rails.env.development? Rails.application.assets.try(:logger=, Logger.new(''/dev/null'')) Rails::Rack::Logger.class_eval do def call_with_quiet_assets(env) previous_level = Rails.logger.level Rails.logger.level = Logger::ERROR if env[''PATH_INFO''] =~ %r{^/assets/} call_without_quiet_assets(env) ensure Rails.logger.level = previous_level end alias_method_chain :call, :quiet_assets end end

Actualizado: ahora también funciona con Rails 3.2 (el intento anterior corrige before_dispatch ahora vamos a before_dispatch la call rack raíz)

Actualización: una solución adecuada de middleware de rack (en lugar de frágil alias_method_chain ) de @macournoyer https://github.com/rails/rails/issues/2639#issuecomment-6591735

Sprockets tiende a ser bastante detallado en el registro (dev) por defecto en Rails 3.1 (RC1):

Started GET "/assets/application.css" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Compiled app/assets/stylesheets/application.css.scss (5ms) (pid 6303) Started GET "/assets/application.js" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Compiled app/assets/stylesheets/default.css.scss (15ms) (pid 6303) ... Started GET "/assets/default/header_bg.gif" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Served asset /default/header_logo.gif - 304 Not Modified (7ms) (pid 6303) Served asset /default/header_bg.gif - 304 Not Modified (0ms) (pid 6246) Served asset /default/footer_bg.gif - 304 Not Modified (49ms) (pid 6236) ...

Me gustaría reducir el nivel de verbosidad o deshabilitarlo por completo. Supongo que hay una forma limpia de deshabilitar o reducir la verbosidad del registro agregando una línea de configuración en environment.rb o development.rb similar a config.active_record.logger = nil que silencia las declaraciones SQL de ActiveRecord.


Dos cosas es suficiente:
1. config.assets.debug = false en config/enviroments/development.rb
2. rake assets:precompile . Vea el comentario por @oma abajo; esto no es necesario

¡Eso es todo!



En config / environment / development.rb por favor agregue:

config.assets.debug = false

config.assets.logger = false

Esto ayudará a su problema.


En config / environment agregue config.log_level = :error a los archivos .rb que desea cambiar. Esto cambiará la configuración del registro a error solamente. Espero que esto haya ayudado!


Eventualmente, será config.assets.logger = nil pero esa parte está actualmente asignada al maestro (aún no se ha hecho)


La solución de enlace mencionada a continuación ayuda a:

https://github.com/evrone/quiet_assets

También como abajo está funcionando bien para mí.

3.1 (solo) (3.2 saltos antes de dipatch)

app/config/initializers/quiet_assets.rb Rails.application.assets.logger = Logger.new(''/dev/null'') Rails::Rack::Logger.class_eval do def before_dispatch_with_quiet_assets(env) before_dispatch_without_quiet_assets(env) unless env[''PATH_INFO''].index("/assets/") == 0 end alias_method_chain :before_dispatch, :quiet_assets end 3.2 Rails - Rack root tap approach app/config/initializers/quiet_assets.rb Rails.application.assets.logger = Logger.new(''/dev/null'') Rails::Rack::Logger.class_eval do def call_with_quiet_assets(env) previous_level = Rails.logger.level Rails.logger.level = Logger::ERROR if env[''PATH_INFO''].index("/assets/") == 0 call_without_quiet_assets(env).tap do Rails.logger.level = previous_level end end alias_method_chain :call, :quiet_assets end


Muchas personas están confundidas sobre el uso de config.assets.logger = false . Esto es lo que hace y lo que no hace.

Según la documentación fuente :

Al configurar config.assets.logger en falso, se desactivará el registro de activos servidos.

Sin embargo, esto probablemente no es lo que crees que es. Solo deshabilita los registros de "servicio" de la rueda dentada , no los registros de solicitud del paquete de acción de Rails. El encargado de Rails explica esto claramente aquí: https://github.com/rails/rails/issues/4569#issuecomment-3594500

Tomando el ejemplo del enlace, los registros como este están deshabilitados:

Activo servido /jquery.isotope.js - 304 No modificado (0ms)

Pero los registros como este no son

Comenzó GET "/assets/jquery.isotope.js?body=1" para 127.0.0.1 en 2012-01-20 23:16:46 -0500


Para Rails 3.2, agregue config.assets.logger = false al archivo de configuración de su entorno de desarrollo, que generalmente se encuentra en config/environments/development.rb . Ver #4512


Sé que es una solución fea y temporal, pero uso esto:

tail -f log / development.log | grep -vE ''activo''


en development.rb en config / environment encontrará la línea config.assets.debug = true . Cambie eso a false y la mayor parte de la salida de carga de activos desaparecerá. En mi sistema solo quedan las dos solicitudes de application.css y .js.


Lograge for the Lograge los Lograge valores predeterminados del registrador de Rails fuera de la caja (p. Ej., Registro de activos, registro parcial) y es personalizable si desea agregar / eliminar elementos específicos.


Rails.application.assets.logger = Logger.new(RUBY_PLATFORM =~ /(win|w)32$/ ? "NUL" : "/dev/null") Rails::Rack::Logger.class_eval do def call_with_quiet_assets(env) previous_level = Rails.logger.level Rails.logger.level = Logger::ERROR if env[''PATH_INFO''].index("/assets/") == 0 call_without_quiet_assets(env).tap do Rails.logger.level = previous_level end end alias_method_chain :call, :quiet_assets end

Es el mismo código que @choonkeat agregó. Acabo de incluir trabajar bajo las ventanas también.


config.assets.quiet = true

Esta es la última manera de ir