2015-06-18 9 views
15

Ecco l'app/assets/per l'app Rails 4.2.Rails 4 - NO manifest.json dopo la precompilazione delle risorse sul server di produzione

enter image description here

Ci sono 3 bootstraps js e file css. Dopo la distribuzione alla produzione (ubuntu 12.1), le attività di precompilazione è stato fatto sul server (distribuito sotto suburi):

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

Ecco la 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 

Ecco la testa di application.css.scss:

@import "bootstrap.min.css"; 
@import "bootstrap-theme.min.css"; 

@import "simple_form.css.scss"; 
@import "user_menus.css.scss"; 

In application.js, ha:

//= require bootstrap.min 

Ecco l'output di ls per/beni pubblici/sul server di produzione:

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 

Confrontando con altri applicazione Rails, manca manifest.json sotto/asset. Abbiamo provato varie opzioni di configurazione in config/environment/production.rb senza alcun risultato. L'unica opzione valida per il server di produzione è la compilazione live di config.assets.compile = true (non consigliata). Cosa c'è di sbagliato nel nostro codice per causare il fallimento del precompilare le risorse?

AGGIORNAMENTO: abbiamo ricostruito l'app Rails da zero e il problema delle risorse rimane lo stesso. Questo problema di precompilazione delle risorse potrebbe non avere nulla a che fare con l'installazione in config/production.rb' and 'config/initializers/aseets.rb come sospettiamo. Il rollback della versione bundler e rake non ha aiutato. Gli stessi file css e js di bootstrap sono stati utilizzati in un'altra app Rails 4.2 in esecuzione sullo stesso server di produzione senza il problema.

+1

Non abbiamo a che fare 'config.assets.precompile + = [ 'bootstrap. min.js ',' b ... 'per le risorse in app/asset laterali. Questo ha solo bisogno di risorse esterne a meno che non specificato nel manifesto. –

+0

'@ maximus', sì, non includendo quei file css o js esplicitamente in' assets.rb' era quello che facevamo per un'altra app Rails 4.2 che ha esattamente le stesse risorse css e bootstrap. Ma non con questa app. Se questi bootstrap js/css non sono inclusi, allora non vengono presi per nulla dopo l'asset precompilato. – user938363

+0

hai controllato questa domanda http: // stackoverflow.it/questions/21519040/rails-4-bootstrap-set-up-assets –

risposta

0

Suppongo che includiate questi file JS e CSS nel modello HTML dell'applicazione in modo esplicito?

Non verranno magicamente compilati nell'applicazione principale CSS e JS, e sarà necessario assicurarsi di utilizzare gli helper dei tag, non i percorsi diretti, quando si fa riferimento ai file erb HTML.

In caso di dubbio, utilizzare percorso_assetto.

+0

Sì, l'app Rails li include. – user938363

0

Il file manifestxxx.json viene generato dopo aver ripristinato la versione da sprockets a 2.12.3 da 3.2.0. Il problema è stato causato dalla versione troppo nuova della gemma sprockets che viene utilizzata per precompilare le risorse.

16

Se stai usando pignoni 3.x, il file manifesto è ora chiamato .sprockets-manifest-md5hash.json, si afferma nel Upgrading Guide

+1

Giusto per essere chiari, nel nome del percorso sopra, '' 'md5hash''' è che l'hash generato automaticamente sarà simile a' '' da5c11 etc etc''' – Obromios

Problemi correlati