ruby on rails - rails - Rieles 3.1.3: tratando de ejecutarse localmente en producción, la canalización de activos no funciona
the asset is not present in the asset pipeline (1)
Rails no sirve activos estáticos en modo de producción por defecto. Si desea deshabilitar esto y servir los activos estáticos, actualice su archivo config/environments/production.rb
con esto:
config.serve_static_assets = true
El razonamiento detrás de la configuración predeterminada de Rails es que asume que se ejecutará detrás de un servidor web estándar en modo de producción (Apache, Nginx, etc.) que luego enviará las solicitudes a su aplicación Rails. Dado que los activos están precompilados, Apache / Nginx / etc. Puede atenderlos directamente sin necesidad de hablar con sus procesos de Rails.
Mi aplicación funciona bien en modo de desarrollo.
Cuando ejecuto en modo de producción usando RAILS_ENV=production rails s
ninguno de mis archivos .css o .js se carga. ( RAILS_ENV=production bundle exec rake assets:precompile
precompilación de activos, usando RAILS_ENV=production bundle exec rake assets:precompile
).
El registro de webrick muestra:
ActionController :: RoutingError (Ninguna ruta coincide con [GET] "/assets/application-a73ce43be7bf75953cd0c60b2b4a7eb0.js"):
y
ActionController :: RoutingError (Ninguna ruta coincide con [GET] "/assets/application-986dd79830088c416c1632c12999ec69.css"):
Los archivos se compilaron (de acuerdo con el archivo log / production.log) y mi directorio public / asset muestra esos archivos con y sin la huella digital:
ls public/assets
application-986dd79830088c416c1632c12999ec69.css
application-986dd79830088c416c1632c12999ec69.css.gz
application-a73ce43be7bf75953cd0c60b2b4a7eb0.js
application-a73ce43be7bf75953cd0c60b2b4a7eb0.js.gz
application.css
application.css.gz
application.js
application.js.gz