Hice una aplicación de rieles básica con un controlador de páginas simple con una función de índice y cuando cargo la página obtengo:
ActionView::Template::Error (application.css isn't precompiled):
2: <html>
3: <head>
4: <title>Demo</title>
5: <%= stylesheet_link_tag "application" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: </head>
app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__43625033_88530400'
Gemfile
source 'http://rubygems.org'
gem 'rails', '3.1.0'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
gem 'execjs'
gem 'therubyracer'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem 'jquery-rails'
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'
group :test do
# Pretty printed test output
gem 'turn', :require => false
end
ruby-on-rails
asset-pipeline
Chris Muench
fuente
fuente
Respuestas:
De forma predeterminada, Rails supone que tiene sus archivos precompilados en el entorno de producción, si desea usar la compilación en vivo (compile sus activos durante el tiempo de ejecución) en producción, debe configurar config.assets.compile en verdadero .
Puede usar esta opción para recurrir a Sprockets cuando está utilizando activos precompilados, pero faltan archivos precompilados.
Si la
config.assets.compile
opción está establecida en falso y faltan archivos precompilados, obtendrá un "AssetNoPrecompiledError" que indica el nombre del archivo que falta.fuente
application.rb
. Añadir / editarapplication.rb
:config.assets.precompile += %w( first.css second.js )
. Ahora estos archivos también se compilarán. No agregue todos los archivos si los usa solo en ruedas dentadasrequire
, pero solo si los incluye con<link>
/<script>
Obtendrá un mejor rendimiento en producción si establece config.assets.compile en false en production.rb y precompila sus activos. Puede precompilar con esta tarea de rastrillo:
Si está utilizando Capistrano, la versión 2.8.0 tiene una receta para manejar esto en el momento de la implementación. Para obtener más información, consulte la sección "En producción" de la Guía de tubería de activos: http://guides.rubyonrails.org/asset_pipeline.html
fuente
rake -T
obundle exec rake -T
es tu amigobundle exec rake ...
garantizará que cargue el rastrillo correcto y las dependencias asociadas para su aplicación. Si no está utilizando bundler, simplemente correríarake ...
.OK, tuve el mismo problema. No quería usar "config.assets.compile = true". Tuve que agregar todos mis archivos .css a la lista en config / entornos / production.rb:
Luego tuve que crear (y luego eliminar) tmp / restart.txt
Siempre usé el ayudante stylesheet_link_tag, así que encontré todos los archivos CSS adicionales que necesitaba agregar con:
fuente
Una solución rápida para el usuario de capistrano es poner esta línea en Capfile
fuente
Para todos aquellos que están leyendo esto pero no tienen problemas
application.css
con sus clases CSS personalizadas, por ejemploadmin.css
,base.css
etc.La solución es usar como se menciona
Y en referencias de hojas de estilo solo referencia
application.css
Dado que la canalización de activos precompilará todas sus hojas de estilo en application.css. Esto también ocurre en el desarrollo, por lo que usar cualquier otra referencia es incorrecto cuando se usa la canalización de activos.
fuente
Estaba teniendo exactamente el mismo error en mi entorno de desarrollo. Al final, todo lo que tenía que hacer para solucionarlo era agregar:
a mi archivo config / assets / development.rb y lo arregló. Mi configuración final en el desarrollo relacionada con los activos se ve así:
fuente
También tuve este problema, donde intentar ejecutar en producción sin precompilar aún arrojaría errores no precompilados. Tuve que cambiar qué línea se comentó application.rb:
fuente
config/application.rb
Aquí está la solución rápida:
Si está utilizando capistrano, haga esto, agregue esto a su deploy.rb:
despliegue de la tapa
fuente
Hoy me encontré con este mensaje de error y quería publicar la resolución en mi caso particular. Resulta que mi problema era que a uno de mis archivos CSS le faltaba una llave de cierre y esto causaba que el archivo no se compilara. Puede ser más difícil notar esto si tiene un proceso automatizado que configura todo (incluida la precompilación de activos) para su entorno de producción.
fuente
Después de todo lo demás falló ...
Mi solución fue cambiar el archivo de diseño de
a
¡Y funcionó! (Puede poner el archivo de reinicio dentro del manifiesto).
fuente
Solo otra forma de arreglar esto en Heroku: asegúrese de que su Rakefile esté comprometido y empujado.
fuente
En el servidor heroku (sistema de archivos de solo lectura), si desea la compilación en tiempo de ejecución de css (no se recomienda, pero puede hacerlo), asegúrese de haber realizado la configuración como se muestra a continuación:
fuente
si crees que seguiste todo bien pero aún desafortunado, solo asegúrate de ejecutar / capistrano touch tmp / restart.txt o equivalente al final. Estaba en la lista desafortunada pero ahora :)
fuente
Probablemente tenga un
syntax error
css en el que está utilizando.Ejecute este comando
Dará la excepción, arreglará eso y ya está todo listo.
Gracias
fuente