the rails present not images asset application ruby-on-rails ruby-on-rails-4 asset-pipeline precompile

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



Rails 4-NO manifest.json después de precompilar los activos en el servidor de producción (3)

El archivo manifestxxx.json se genera después de actualizar la versión de sprockets a 2.12.3 desde 3.2.0. El problema fue causado por una versión demasiado nueva de gemas de gemas que se utiliza para precompilar los activos.

Aquí está la aplicación / assets / para una aplicación Rails 4.2.

Hay 3 archivos bootstraps js y css. Después de implementar en producción (ubuntu 12.1), la precompilación de activos se realizó en el servidor (desplegado bajo suburi):

RAILS_ENV=production bundle exec rake assets:precompile RAILS_RELATIVE_URL_ROOT=/mysuburi

Aquí está el production.rb :

config.cache_classes = true config.eager_load = true config.consider_all_requests_local = false config.action_controller.perform_caching = true config.serve_static_files = false #ENV[''RAILS_SERVE_STATIC_FILES''].present? config.assets.compress = true config.assets.js_compressor = :uglifier config.assets.compile = false config.assets.digest = true config.log_level = :debug config.i18n.fallbacks = true config.active_support.deprecation = :notify config.log_formatter = ::Logger::Formatter.new config.active_record.dump_schema_after_migration = false

Aquí está el jefe de application.css.scss :

@import "bootstrap.min.css"; @import "bootstrap-theme.min.css"; @import "simple_form.css.scss"; @import "user_menus.css.scss";

En application.js , tiene:

//= require bootstrap.min

Aquí está la salida de ls para public / assets / en el servidor de producción:

application-05cf37813d76c2bd659271403789374cc118f1a4e616ec220969577b79ff6514.css application-375b4b5d8fc285716f4fdca966aa960912efe8292242df8f1a60b99d5caa4b02.js authentify banquet_coursex banquetx biz_workflowx commonx glyphicons-halflings-regular-5d234508037dc13a419ef6ce48f3fc73dbb477f1a162c052b872182b494e626e.svg glyphicons-halflings-regular-bd18efd3efd70fec8ad09611a20cdbf99440b2c1d40085c29be036f891d65358.ttf glyphicons-halflings-regular-f495f34e4f177cf0115af995bbbfeb3fcabc88502876e76fc51a4ab439bc8431.eot glyphicons-halflings-regular-fc969dc1c6ff531abcf368089dcbaf5775133b0626ff56b52301a059fc0f9e1e.woff jquery-ui searchx state_machine_logx user_manualx user_menus-7c46e17f4172c2a954eeaf85e80b4e030d1ed0fb3927288bbe07eeb4fb8cbfc5.css

Al comparar con otra aplicación de Rails, falta manifest.json en / assets. Probamos varias opciones de config/environment/production.rb en config/environment/production.rb sin ningún resultado. La única opción que funciona en el servidor de producción es la compilación en vivo de config.assets.compile = true (no recomendado). ¿Qué hay de malo en nuestro código para que los activos pierdan precompilación?

ACTUALIZACIÓN: hemos reconstruido la aplicación Rails desde cero y el problema de los activos sigue siendo el mismo. Este problema de precompilación de activos puede no tener nada que ver con la configuración en config/production.rb'' and ''config/initializers/aseets.rb como sospechamos. Devolver la versión de bundler y rake no ayudó. Los mismos archivos bootstrap css y js se han utilizado en otra aplicación de Rails 4.2 que se ejecuta en el mismo servidor de producción sin el problema.


Si está utilizando sprockets 3.x , el archivo de manifiesto ahora se llama .sprockets-manifest-md5hash.json , se indica en la Guía de actualización.


Supongo que incluye estos archivos JS y CSS en su plantilla HTML de la aplicación de forma explícita.

No terminarán mágicamente compilados en el archivo CSS y JS de la aplicación principal, y debe asegurarse de usar los ayudantes de etiquetas, no las rutas directas, al hacer referencia a ellos desde los archivos HTML erb.

En caso de duda, use asset_path.