2016-06-28 11 views
0

CentOS 6.6 Linux에서 RubyOnRails 4.2.0을 사용하여 웹 사이트를 구축했습니다. CoffeeScript를 사전 처리 컴파일 할 수 없습니다. "therubyracer"가 실행되는 동안 오류가 발생한 것 같습니다. CoffeeScript가없는 경우에만 프리 컴파일이 성공합니다.Rails 4.2.0 자산이 "잘못된 인자 유형 nil (예상 데이터)"을 미리 컴파일합니다.

보석 "therubyracer"ver.0.11.0beta8과 보석 "libv8"ver.3.11.8.3을 사용합니다. 해결 방법은 무엇입니까? 감사합니다. .

아키텍처

# bundle exec ruby -rubygems -e 'puts Gem::Platform.new(RUBY_PLATFORM)' 
x86_64-linux 

Rails.application.config.assets

irb(main):001:0> y Rails.application.config.assets.compile 
--- true 
... 
=> nil 
irb(main):002:0> 
irb(main):003:0* 
irb(main):004:0* y Rails.application.config.assets.digest 
--- true 
... 
=> nil 
irb(main):005:0> y Rails.application.config.assets.enabled 
--- true 
... 
=> nil 
irb(main):006:0> 
irb(main):011:0* y Rails.application.config.assets.paths 
--- 
- "/opt/redmine-3.0.1/app/assets/javascripts" 
- "/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/websocket-rails-0.7.0/lib/assets/javascripts" 
- "/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/jquery-rails-3.1.2/vendor/assets/javascripts" 
- "/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/coffee-rails-4.1.1/lib/assets/javascripts" 
=> nil 
irb(main):012:0> 
irb(main):013:0* y Rails.application.config.assets.precompile 
--- 
- !ruby/object:Proc {} 
- !ruby/regexp /(?:¥/|¥¥|¥A)application¥.(css|js)$/ 
- "*.coffee" 
- "*.js" 
- "*.jpg" 
- "*.png" 
- "*.ttf" 
=> nil 
irb(main):014:0> 
irb(main):015:0* y Rails.application.config.assets.prefix 
--- "/assets" 
=> nil 
irb(main):016:0> 

자산 디렉토리

# cat app/assets/javascripts/application.js 
//= require websocket_rails/main 

# ls -ltr /opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/websocket-rails-0.7.0/lib/assets/javascripts/ 
合計 4 
drwxr-xr-x 2 root root 4096 6月 26 18:46 2016 websocket_rails 

# ls -ltr /opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/websocket-rails-0.7.0/lib/assets/javascripts/websocket_rails/ 
合計 32 
-rw-r--r-- 1 root root 1742 6月 19 17:53 2016 http_connection.js.coffee 
-rw-r--r-- 1 root root 995 6月 19 17:53 2016 event.js.coffee 
-rw-r--r-- 1 root root 2292 6月 19 17:53 2016 channel.js.coffee 
-rw-r--r-- 1 root root 1237 6月 19 17:53 2016 abstract_connection.js.coffee 
-rw-r--r-- 1 root root 4515 6月 19 17:53 2016 websocket_rails.js.coffee 
-rw-r--r-- 1 root root 857 6月 19 17:53 2016 websocket_connection.js.coffee 
-rw-r--r-- 1 root root 171 6月 19 17:53 2016 main.js 
# cat /opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/websocket-rails-0.7.0/lib/assets/javascripts/websocket_rails/main.js 
//= require ./websocket_rails 
//= require ./event 
//= require ./abstract_connection 
//= require ./http_connection 
//= require ./websocket_connection 
//= require ./channel 

레이크 자산 : 사전 컴파일

# RAILS_ENV=production bundle exec rake assets:precompile --trace 
[DEPRECATION] requiring "RMagick" is deprecated. Use "rmagick" instead 
** Invoke assets:precompile (first_time) 
** Invoke assets:environment (first_time) 
** Execute assets:environment 
** Invoke environment (first_time) 
** Execute environment 
** Execute assets:precompile 
rake aborted! 
TypeError: wrong argument type nil (expected Data) 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/therubyracer-0.11.0beta8-x86_64-linux/lib/v8/context.rb:66:in `New' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/therubyracer-0.11.0beta8-x86_64-linux/lib/v8/context.rb:66:in `initialize' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/ruby_racer_runtime.rb:10:in `new' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/ruby_racer_runtime.rb:10:in `block in initialize' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/ruby_racer_runtime.rb:75:in `block in lock' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/ruby_racer_runtime.rb:73:in `call' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/ruby_racer_runtime.rb:73:in `Locker' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/ruby_racer_runtime.rb:73:in `lock' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/ruby_racer_runtime.rb:9:in `initialize' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/runtime.rb:44:in `new' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/runtime.rb:44:in `compile' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/execjs-2.6.0/lib/execjs/module.rb:27:in `compile' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/coffee-script-2.4.1/lib/coffee_script.rb:50:in `context' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/coffee-script-2.4.1/lib/coffee_script.rb:78:in `compile' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/coffee_script_processor.rb:21:in `block in call' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/cache.rb:85:in `fetch' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/coffee_script_processor.rb:20:in `call' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/processor_utils.rb:73:in `call_processor' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/processor_utils.rb:55:in `block in call_processors' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/processor_utils.rb:54:in `reverse_each' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/processor_utils.rb:54:in `call_processors' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/loader.rb:103:in `load_asset_by_uri' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/loader.rb:40:in `block in load' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/loader.rb:170:in `fetch_asset_from_dependency_cache' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/loader.rb:33:in `load' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/cached_environment.rb:20:in `block in initialize' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/cached_environment.rb:47:in `yield' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/cached_environment.rb:47:in `load' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/bundle.rb:23:in `block in call' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/utils.rb:183:in `dfs' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/bundle.rb:24:in `call' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/processor_utils.rb:73:in `call_processor' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/processor_utils.rb:55:in `block in call_processors' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/processor_utils.rb:54:in `reverse_each' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/processor_utils.rb:54:in `call_processors' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/loader.rb:103:in `load_asset_by_uri' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/loader.rb:40:in `block in load' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/loader.rb:170:in `fetch_asset_from_dependency_cache' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/loader.rb:33:in `load' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/cached_environment.rb:20:in `block in initialize' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/cached_environment.rb:47:in `yield' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/cached_environment.rb:47:in `load' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/base.rb:63:in `find_asset' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/base.rb:70:in `find_all_linked_assets' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/manifest.rb:138:in `block in find' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/legacy.rb:114:in `block (2 levels) in logical_paths' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/path_utils.rb:223:in `block in stat_tree' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/path_utils.rb:207:in `block in stat_directory' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/path_utils.rb:204:in `each' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/path_utils.rb:204:in `stat_directory' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/path_utils.rb:222:in `stat_tree' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/legacy.rb:105:in `each' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/legacy.rb:105:in `block in logical_paths' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/legacy.rb:104:in `each' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/legacy.rb:104:in `logical_paths' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/manifest.rb:136:in `find' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/sprockets/manifest.rb:162:in `compile' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:70:in `block (3 levels) in define' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-3.0.0/lib/rake/sprocketstask.rb:147:in `with_logger' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:69:in `block (2 levels) in define' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `call' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `block in execute' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `each' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain' 
/usr/local/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `each' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in `run' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/bin/rake:23:in `load' 
/opt/redmine-3.0.1/vendor/bundle/ruby/2.1.0/bin/rake:23:in `<main>' 
Tasks: TOP => assets:precompile 
# 
,

답변

0

libv8 관리자가 여기 있습니다.

사용중인 libv8 및 theraracer의 버전이 고대이므로 최신 출시 버전으로 업데이트하십시오. 계속해서 오류가 발생하면 therabyracer/libv8의 문제 추적기에서 github의 문제를 열어보십시오.

보조 메모로서, SO에서 질문을하기 전에 먼저 프로젝트의 관리자에게 직접 문제 추적기를 통해 질문하는 것이 좋습니다. 우연히 여기 libv8에 대한 최근의 질문을 찾지 못했다면 당신의 질문은 아마도 답이 없을 것입니다.