ruby-on-rails-4 ruby-on-rails-4.1

ruby on rails 4 - Asset filtrado y no se servirá: agregar `config.assets.precompile



ruby-on-rails-4 ruby-on-rails-4.1 (5)

Acabo de migrar mi aplicación a los rieles 4.1.0 desde 4.1.rc2 . Comencé a obtener estos errores para mis archivos JS

ActionView::Template::Error: Asset filtered out and will not be served: add `config.assets.precompile += %w( my_js )` to `config/application.rb` and restart your server


Idealmente, la solución @zilojko funciona pero también tengo administración activa en esta aplicación ... por lo tanto, después de mirar un poco más encontré la siguiente solución:

Rails.application.config.assets.precompile += %w(*.svg *.eot *.woff *.ttf *.gif *.png *.ico) Rails.application.config.assets.precompile << //A(?!active_admin).*/.(js|css)/z/

Simplemente agregue las líneas de arriba a: /config/initializers/assets.rb

El código anterior precompila activos al omitir archivos de administración activos. para que no se procesen dos veces o que no se conviertan en errores.


Puede detele <%= javascript_include_tag ''xxx'' %> desde su erb, y en sus assets/javascript/name_space/index.js.coffee , assets/javascript/name_space/index.js.coffee esto

#= require ./xxx


Respondiendo a la insistencia de Heroku, los mantenedores de Rails combinaron los controles de cordura de la gema sprockets_better_errors en Rails 4.1. Ver https://github.com/rails/sprockets-rails/pull/84

El objetivo es revelar los errores de canalización de activos que vería en producción cuando ejecute la aplicación en modo de desarrollo.

Probablemente esté utilizando un javascript_include_tag en un diseño de aplicación en lugar de colocar sus archivos JavaScript en la carpeta app / assets / javascripts / .

Puede mover sus archivos a la aplicación / assets / javascripts / folder.

Alternativamente, deberá actualizar su archivo config / application.rb para incluir:

config.assets.precompile += %w( my_js )

Tenga en cuenta que el nombre de archivo no debe incluir la extensión de archivo .js.


Sí, al leer el error en el navegador, todo lo que hice fue agregar la siguiente línea de código:

Rails.application.config.assets.precompile += %w( depot.css )

Al archivo /config/initializers/assets.rb y funcionó.


Si ha agregado algo como stylesheet_link_tag params[:controller] al encabezado de diseño de la aplicación, porque tiene aplicaciones JS separadas en diferentes controladores pero con el mismo diseño básico, se sentirá bastante molesto con esto. Una manera rápida de superar esto y continuar el trabajo (pero tal vez no sea una solución final) con todos los activos precompilados es agregar lo siguiente a /config/initializers/assets.rb:

Rails.application.config.assets.precompile += [/.*/.js/,/.*/.css/]

Tenga en cuenta que esto es lo que es incluso para .js.coffee y .css.scss , .js y .css son suficientes.