2013-09-26 10 views
7

Sono un po 'disperato; ho cercato di risolvere il problema per giorni. CHIUNQUE ha idea di come risolvere? Forse identifica i file che stanno creando il problema di codifica?Risorse di debug delle rotaie: precompilare: come identificare i file incriminati?

FWIW: Questo funziona in ambiente dev: RAILS_ENV=production bundle exec rake assets:precompile --trace

Ma questo non riesce sul server di 'produzione' ... idea di come iniziare la risoluzione dei problemi:

$ RAILS_ENV=production RAILS_GROUPS=assets bundle exec rake assets:precompile --trace 
** Invoke assets:precompile (first_time) 
** Invoke assets:environment (first_time) 
** Execute assets:environment 
** Invoke environment (first_time) 
** Execute environment 
** Execute assets:precompile 
I, [2013-09-26T10:54:13.904512 #8431] INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_asc-9348a2efdfbcfa28135e10d4f7b42d0d.png 
I, [2013-09-26T10:54:13.945109 #8431] INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_asc_disabled-30ae6b96c67982047ca4cfa0b8ce81b2.png 
I, [2013-09-26T10:54:14.007435 #8431] INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_both-8018c940cc83bb4cf2bf0e68e41fdcc0.png 
I, [2013-09-26T10:54:14.011733 #8431] INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_desc-05521e27371d9dd4e6febce9314bc7ed.png 
I, [2013-09-26T10:54:14.017370 #8431] INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_desc_disabled-a3215e17d6bf077db02468b895fee228.png 
rake aborted! 
Caught Encoding::CompatibilityError at '["ok","!function(e,t': incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string) 
    (in /rails/myapp/releases/20130926175008/app/assets/javascripts/application.js) 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/json-1.8.0/lib/json/pure/parser.rb:242:in `rescue in parse_string' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/json-1.8.0/lib/json/pure/parser.rb:213:in `parse_string' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/json-1.8.0/lib/json/pure/parser.rb:257:in `parse_value' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/json-1.8.0/lib/json/pure/parser.rb:121:in `parse' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/json-1.8.0/lib/json/common.rb:155:in `parse' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/json-1.8.0/lib/json/common.rb:334:in `load' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/execjs-2.0.1/lib/execjs/external_runtime.rb:62:in `extract_result' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/execjs-2.0.1/lib/execjs/external_runtime.rb:28:in `block in exec' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/execjs-2.0.1/lib/execjs/external_runtime.rb:41:in `compile_to_tempfile' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/execjs-2.0.1/lib/execjs/external_runtime.rb:27:in `exec' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/uglifier-2.2.1/lib/uglifier.rb:176:in `really_compile' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/uglifier-2.2.1/lib/uglifier.rb:100:in `compile' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/uglifier_compressor.rb:25:in `evaluate' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/context.rb:197:in `block in evaluate' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/context.rb:194:in `each' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/context.rb:194:in `evaluate' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/bundled_asset.rb:25:in `initialize' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/base.rb:377:in `new' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/base.rb:377:in `build_asset' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/index.rb:94:in `block in build_asset' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/caching.rb:58:in `cache_asset' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/index.rb:93:in `build_asset' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/base.rb:287:in `find_asset' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/index.rb:61:in `find_asset' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:211:in `block in find_asset' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:257:in `benchmark' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:210:in `find_asset' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:119:in `block in compile' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:118:in `each' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:118:in `compile' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-rails-2.0.0/lib/sprockets/rails/task.rb:60:in `block (3 levels) in define' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-2.10.0/lib/rake/sprocketstask.rb:146:in `with_logger' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/sprockets-rails-2.0.0/lib/sprockets/rails/task.rb:59:in `block (2 levels) in define' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task.rb:236:in `call' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task.rb:236:in `block in execute' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task.rb:231:in `each' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task.rb:231:in `execute' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task.rb:175:in `block in invoke_with_call_chain' 
/usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task.rb:168:in `invoke_with_call_chain' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/task.rb:161:in `invoke' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:149:in `invoke_task' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:106:in `block (2 levels) in top_level' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:106:in `each' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:106:in `block in top_level' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:115:in `run_with_threads' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:100:in `top_level' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:78:in `block in run' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:75:in `run' 
/rails/myapp/shared/bundle/ruby/2.0.0/gems/rake-10.1.0/bin/rake:33:in `<top (required)>' 
/rails/myapp/shared/bundle/ruby/2.0.0/bin/rake:23:in `load' 
/rails/myapp/shared/bundle/ruby/2.0.0/bin/rake:23:in `<main>' 
Tasks: TOP => assets:precompile 

Gemfile (come richiesto):

source 'https://rubygems.org' 
ruby '2.0.0' 

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.0.0' 
gem 'pg' 
gem 'sass-rails', '~> 4.0.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.0.0' 

gem 'jquery-rails' 
gem 'turbolinks' 
gem 'jbuilder', '~> 1.2' 

group :doc do 
    # bundle exec rake doc:rails generates the API under doc/api. 
    gem 'sdoc', require: false 
end 

group :development, :test do 
    gem 'rspec-rails' 
    gem 'factory_girl_rails' 
    gem 'guard-rspec' 
    # gem 'debugger' 
end 

group :development do 
    gem 'annotate' 
    gem 'spork-rails', github: 'sporkrb/spork-rails' 
    gem 'guard-spork' 
    gem 'awesome_print' 
    gem 'better_errors' 
    gem 'binding_of_caller' 
    gem 'pry-rails' #substitute pry for irb 
end 

group :test do 
    gem 'selenium-webdriver' 
    gem 'capybara' 
    gem 'faker' 
    gem 'database_cleaner' 
    gem 'poltergeist' 
    gem 'launchy' 
end 

gem 'rvm-capistrano' #, group: :development 
gem 'haml-rails' 
# gem 'zurb-foundation' 
# gem 'foundicons-rails' 
gem 'bootstrap-sass', :git => 'git://github.com/thomas-mcdonald/bootstrap-sass.git' #, :branch => '3' 
gem 'kaminari' 
gem 'ancestry' 
gem 'twitter-typeahead-rails' 
# gem 'bootstrap-typeahead-rails' #TODO 
gem 'hogan_assets' 
gem 'awesome_print' 
gem 'multi_json', '1.7.8' # error in cap deploy with version 1.7.9 
# gem 'json' # not necessary before multi_json deploy failure 

gem 'textacular' 
gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails' 
+1

prova a cercare la directory dei tuoi beni per '[" ok ","! Function (e, t' –

+0

@luri G. Ho provato a cercare * my * assets per quel javascript con la funzione 'grep -r '! (e' .' ma non mostra nulla. Comunque, sto usando * principalmente * coffeescript quindi la sintassi è una un po 'diverso, forse dopo che il caffè è precompilato?!? – Meltemi

+0

Ti suggerisco di rimuovere i file (direttive) dal manifest di 'application.js' per identificare il file che causa il problema. Puoi eseguire le risorse' rake: precompilare' nello sviluppo – cortex

risposta

2

Vorrei solo iniziare un ciclo di rimozione di un file dal manifest e quindi provare a distribuire. Se ciò non funzionasse, rimuoverei il file successivo dal manifest e così via fino a trovare quello che causa il problema.

+3

Oh, per favore. Uno alla volta? Fai una ricerca binaria, come un vero programmatore. Elimina metà di tutti i file nell'elenco. Se fallisce, togli la metà di ciò che è rimasto, altrimenti ripristina metà di quello che hai portato via. Ripeti finché non trovi il file incriminato. –

1

Proprio di fronte a un problema simile - ha InvalidByteSequenceError durante le risorse: precompilato. Quello che ho fatto è stato: ho modificato un po 'il codice della ruota dentata per "inserire" alcune informazioni di debug, in particolare il nome del file corrente. Poi ho eseguito di nuovo la precompilazione, ho trovato il file basato sull'output di debug e l'ho risolto. Poi ovviamente ho ripristinato i cambiamenti della gemma. Puoi usare lo stesso approccio dato che hai il backtrace. Inoltre, è possibile eseguire il debug di asstes: attività di precompilazione (tramite debugger inline o tramite IDE preferito.) Spero che questo aiuti!

+2

dovresti pubblicare il tuo diff .... –

+1

Per favore pubblica il tuo diff o almeno un nome! Hai quasi fatto la mia giornata. – djvs

+0

Sono contento di aver fatto la tua giornata, @djvs. Non ho diff perché era un affare minuto. Ho appena pubblicato la mia esperienza per risolvere questo problema in meno di un minuto. Sì, può sembrare brutto ma mi ha risparmiato un sacco di tempo, per un progetto con centinaia di risorse complesse – neolancer