我一直试图让RoR与Passenger和Nginx一起工作.男人是一场冒险.我终于得到了服务器运行,它正在托管一个测试网站,很好.我遇到了资产错误.我无法使用bundle exec rake资源编译application.js:precompile.以下是–trace的结果:
$bundle exec rake assets:precompile --trace ** Invoke assets:precompile (first_time) ** Execute assets:precompile /Users/pstachof/.rvm/rubies/ruby-1.9.3-head/bin/ruby /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace ** Invoke assets:precompile:all (first_time) ** Execute assets:precompile:all ** Invoke assets:precompile:primary (first_time) ** Invoke assets:environment (first_time) ** Execute assets:environment ** Invoke environment (first_time) ** Execute environment ** Invoke tmp:cache:clear (first_time) ** Execute tmp:cache:clear ** Execute assets:precompile:primary rake aborted! TypeError: 'undefined' is not a function (evaluating 'define.globalDomain.require.bind(define.globalDomain)') (in /Users/pstachof/.webserver/sites/stachtest1/app/assets/javascripts/application.js) /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:68:in `extract_result' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:28:in `block in exec' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:41:in `compile_to_tempfile' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:27:in `exec' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/uglifier-2.0.1/lib/uglifier.rb:167:in `really_compile' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/uglifier-2.0.1/lib/uglifier.rb:95:in `compile' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/actionpack-3.2.13/lib/sprockets/compressors.rb:74:in `compress' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/processing.rb:265:in `block in js_compressor=' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/processor.rb:29:in `call' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/processor.rb:29:in `evaluate' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/tilt-1.3.7/lib/tilt/template.rb:77:in `render' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/context.rb:193:in `block in evaluate' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/context.rb:190:in `each' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/context.rb:190:in `evaluate' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/bundled_asset.rb:26:in `initialize' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:252:in `new' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:252:in `build_asset' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/index.rb:93:in `block in build_asset' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/caching.rb:19:in `cache_asset' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/index.rb:92:in `build_asset' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:169:in `find_asset' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/index.rb:60:in `find_asset' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/actionpack-3.2.13/lib/sprockets/static_compiler.rb:19:in `block in compile' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:219:in `block in each_logical_path' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:206:in `block (2 levels) in each_file' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:196:in `each' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:196:in `each_entry' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:204:in `block in each_file' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:203:in `each' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:203:in `each_file' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/sprockets-2.2.2/lib/sprockets/base.rb:217:in `each_logical_path' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/actionpack-3.2.13/lib/sprockets/static_compiler.rb:18:in `compile' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/actionpack-3.2.13/lib/sprockets/assets.rake:56:in `internal_precompile' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/actionpack-3.2.13/lib/sprockets/assets.rake:70:in `block (3 levels) in <top (required)>' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:246:in `call' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:241:in `each' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain' /Users/pstachof/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/actionpack-3.2.13/lib/sprockets/assets.rake:60:in `block (3 levels) in <top (required)>' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:246:in `call' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:241:in `each' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain' /Users/pstachof/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:143:in `invoke_task' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:101:in `block (2 levels) in top_level' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:101:in `each' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:101:in `block in top_level' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:110:in `run_with_threads' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:95:in `top_level' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:73:in `block in run' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:70:in `run' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/bin/rake:33:in `<top (required)>' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/bin/rake:23:in `load' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/bin/rake:23:in `<main>' Tasks: TOP => assets:precompile:primary rake aborted! Command Failed with status (1): [/Users/pstachof/.rvm/rubies/ruby-1.9.3-hea...] /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/file_utils.rb:53:in `block in create_shell_runner' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/file_utils.rb:45:in `call' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/file_utils.rb:45:in `sh' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/file_utils_ext.rb:37:in `sh' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/file_utils.rb:80:in `ruby' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/file_utils_ext.rb:37:in `ruby' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/actionpack-3.2.13/lib/sprockets/assets.rake:12:in `ruby_rake_task' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/actionpack-3.2.13/lib/sprockets/assets.rake:21:in `invoke_or_reboot_rake_task' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/gems/actionpack-3.2.13/lib/sprockets/assets.rake:29:in `block (2 levels) in <top (required)>' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:246:in `call' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:241:in `each' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain' /Users/pstachof/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:143:in `invoke_task' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:101:in `block (2 levels) in top_level' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:101:in `each' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:101:in `block in top_level' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:110:in `run_with_threads' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:95:in `top_level' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:73:in `block in run' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/lib/rake/application.rb:70:in `run' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/gems/rake-10.0.4/bin/rake:33:in `<top (required)>' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/bin/rake:23:in `load' /Users/pstachof/.rvm/gems/ruby-1.9.3-head@global/bin/rake:23:in `<main>' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/bin/ruby_noexec_wrapper:14:in `eval' /Users/pstachof/.rvm/gems/ruby-1.9.3-head/bin/ruby_noexec_wrapper:14:in `<main>' Tasks: TOP => assets:precompile
如果我在config / environments / production.rb中设置config.assets.compile = true并重新启动服务器重新加载该站点,我会在production.log中收到以下内容
Connecting to database specified by database.yml Started GET "/" for 98.156.89.130 at 2013-04-23 22:45:35 -0500 Processing by HomeController#welcome as HTML Rendered home/welcome.html.erb within layouts/application (10.7ms) Completed 500 Internal Server Error in 77ms ActionView::Template::Error (application.js isn't precompiled): 3: <head> 4: <title>Stachtest1</title> 5: <%= stylesheet_link_tag "application",:media => "all" %> 6: <%= javascript_include_tag "application" %> 7: <%= csrf_Meta_tags %> 8: </head> 9: <body> app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__451492169_16346550'
如果我从assets / javascript目录中删除application.js文件(我根本没有修改过),并且编译一切顺利.我也尝试使用assests / javascript目录中的文件进行编译,但删除了所有的文本,它仍然失败.
我正在使用rails 3.2.13,ruby 1.9.3,并在本地安装了以下宝石
*** LOCAL GEMS *** actionmailer (3.2.13) actionpack (3.2.13) activemodel (3.2.13) activerecord (3.2.13) activeresource (3.2.13) activesupport (3.2.13) arel (3.0.2) bigdecimal (1.1.0) builder (3.0.4) bundler (1.3.5) coffee-rails (3.2.2) coffee-script (2.2.0) coffee-script-source (1.6.2) daemon_controller (1.1.2) erubis (2.7.0) execjs (1.4.0) fastthread (1.0.7) hike (1.2.2) i18n (0.6.1) io-console (0.3) journey (1.0.4) jquery-rails (2.2.1) json (1.7.7,1.5.5) mail (2.5.3) mime-types (1.23) minitest (2.5.1) multi_json (1.7.2) passenger (3.0.19) polyglot (0.3.3) rack (1.4.5) rack-cache (1.2) rack-ssl (1.3.3) rack-test (0.6.2) rails (3.2.13) railties (3.2.13) rake (10.0.4,0.9.2.2) rdoc (3.12.2,3.9.5) rubygems-bundler (1.1.1) rvm (1.11.3.7) sass (3.2.8) sass-rails (3.2.6) sprockets (2.2.2) sqlite3 (1.3.7) thor (0.18.1) tilt (1.3.7) treetop (1.4.12) tzinfo (0.3.37) uglifier (2.0.1)
这是application.js文件
// This is a manifest file that'll be compiled into application.js,which will include all the files // listed below. // // Any JavaScript/Coffee file within this directory,lib/assets/javascripts,vendor/assets/javascripts,// or vendor/assets/javascripts of plugins,if any,can be referenced here using a relative path. // // It's not advisable to add code directly here,but if you do,it'll appear at the bottom of the // the compiled file. // // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED,ANY BLANK LINE SHOULD // GO AFTER THE REQUIRES BELOW. // //= require jquery //= require jquery_ujs //= require_tree
当我继续玩这个设置时,我发现尽管它在资源/ javascript目录中编译了没有application.js文件的资源,但似乎css正在正确编译,刷新后不会在网页上显示服务器和站点.如果我把风格直接放在网页中,就像它一样渲染.
以下是相关的文件:
application.html.erb
<!DOCTYPE html> <html> <head> <title>Stachtest1</title> <%= stylesheet_link_tag "application",:media => "all" %> <%= csrf_Meta_tags %> </head> <body> <div id="content"> Does this work... </div> <%= yield %> <div style="border: 1px solid #000;"> This is a test to see about some styles </div> </body> </html>
资产/样式表/ application.css
.content { border: 1px solid #999; padding: 5px; }
公共/ application.css
.content{border:1px solid #999;padding:5px}
我不知道这是否是一个单独的问题,如果是这样,我可以拉出来,但想添加它,以防万一.
我已经达到了我的想法的尽头.任何想法或建议将不胜感激.如果我没有任何信息,请让我知道,我可以尽可能地填补空白.
谢谢,
帕特里克
解决方法
尝试:
//= require_tree .
代替
//= require_tree
点在最后.喜欢在指导:http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives