the rails present not images asset ruby-on-rails ruby-on-rails-3.1 sass sprockets asset-pipeline

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



Precompilación de un archivo de manifiesto.scss mediante la canalización de activos de Rails 3.1 (2)

Incluya los nombres de archivos compilados en su lista de precompilación:

config.assets.precompile += %w( user.css admin.css )

Además, es posible que desee cambiar el nombre de los archivos originales en app/assets/stylesheets para incluir la extensión compilada en los nombres de archivo originales para que quede claro lo que está pasando:

user.scss -> user.css.scss admin.scss -> admin.css.scss

La versión de lanzamiento de Rails 3.1 está teniendo algunos problemas extraños al precompilar un archivo de manifiesto sass con la extensión scss . Lo extraño es que el archivo de manifiesto predeterminado application.scss compila bien y lo veo en public/assets/ .

Sin embargo, cuando intento compilar mis archivos de manifiesto personalizados, no se crea nada. He habilitado la opción de precompilación en la configuración de producción.

config.assets.precompile += %w( user.scss admin.scss )

Estoy ejecutando la tarea de rastrillo de precompilación correctamente hasta donde sé.

rake assets:precompile RAILS_ENV=production

Y tal vez esto ayude. Cuando creo dos nuevos archivos de manifiesto con la extensión css en lugar de scss y requiero los archivos scss originales, entonces estos nuevos archivos de manifiesto son respetados y compilados correctamente. ¿Por qué application.scss recibe este tratamiento especial y no otros archivos manifiestos de Sass?


Sospecho que podría ser un error.

Los archivos de la application se tratan como los archivos principales de un proyecto predeterminado. El que termina en .css y .js se incluye en la lista de precompilación de forma predeterminada.

El comportamiento que describe (los manifiestos que tienen una extensión .css) es el correcto.