2013-04-24 136 views
10

我一直在試圖讓RoR與Passenger和Nginx一起工作。人類一直是一次冒險。我終於得到了服務器運行,它正在託管一個測試站點,很好。我遇到了資產錯誤。我無法使用bundle exec rake assets:precompile編譯application.js。下面是結果與--trace:bundle exec rake assets:預編譯

$ 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/[email protected]/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/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:246:in `call' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:241:in `each' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute' 
/Users/pstachof/.rvm/gems/[email protected]/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/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain' 
/Users/pstachof/.rvm/gems/[email protected]/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/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:246:in `call' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:241:in `each' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute' 
/Users/pstachof/.rvm/gems/[email protected]/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/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:143:in `invoke_task' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:101:in `block (2 levels) in top_level' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:101:in `each' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:101:in `block in top_level' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:110:in `run_with_threads' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:95:in `top_level' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:73:in `block in run' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:70:in `run' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/bin/rake:33:in `<top (required)>' 
/Users/pstachof/.rvm/gems/[email protected]/bin/rake:23:in `load' 
/Users/pstachof/.rvm/gems/[email protected]/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/[email protected]/gems/rake-10.0.4/lib/rake/file_utils.rb:53:in `block in create_shell_runner' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/file_utils.rb:45:in `call' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/file_utils.rb:45:in `sh' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/file_utils_ext.rb:37:in `sh' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/file_utils.rb:80:in `ruby' 
/Users/pstachof/.rvm/gems/[email protected]/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/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:246:in `call' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:241:in `each' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute' 
/Users/pstachof/.rvm/gems/[email protected]/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/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:143:in `invoke_task' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:101:in `block (2 levels) in top_level' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:101:in `each' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:101:in `block in top_level' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:110:in `run_with_threads' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:95:in `top_level' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:73:in `block in run' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:70:in `run' 
/Users/pstachof/.rvm/gems/[email protected]/gems/rake-10.0.4/bin/rake:33:in `<top (required)>' 
/Users/pstachof/.rvm/gems/[email protected]/bin/rake:23:in `load' 
/Users/pstachof/.rvm/gems/[email protected]/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' 

以下網站如果刪除該應用程序.js文件(其中我沒有修改過)從assets/javascript目錄中編譯一切順利。我也嘗試使用assests/javascript目錄中的文件進行編譯,但刪除了所有文本,但仍然失敗。

我使用的軌道3.2.13,紅寶石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} 

我我不確定這是不是一個單獨的問題,如果是的話,我可以把它拿出來,但想要以防萬一。

我有點達到了我的想法的結束。任何想法或建議將不勝感激。如果我缺少任何信息,請讓我知道,我可以盡我所能填補空白。

謝謝 帕特里克

+2

分享你的application.js文件。 – 2013-04-24 04:24:43

+1

我已經包含了application.js文件的內容。 – Patrick 2013-04-24 04:45:11

+1

嘗試在config/environments/production.rb中運行config.assets.precompile + = ['application.js'] – 2013-04-24 04:53:25

回答

0

檢查刪除下面的在線表格的application.js

//= require_tree 

require_tree加載所有在app /文件JavaScript的目錄遞歸

如果它的工作有一些問題與應用程序/資產/ javascripts目錄中的一個JavaScript文件

che ck中的所有文件或

需要在應用程序中一個接一個的文件。js

//= require js_file_name 
+0

這就是我的想法,但我實際上已將所有文本從文件中除外// = require's仍然收到錯誤。不過謝謝你的建議。 – Patrick 2013-04-24 13:21:06

0

在舊的已部署的應用上更新寶石後,我看到了同樣的錯誤。我把它縮小到了uglifier,從1.3.0升級到2.0.1。根據其README它需要一個JS解釋器:

確保您的環境具有由ExecJS支持的JavaScript解釋器。安裝therubyracer gem是一個安全的選擇,並且在PATH中也有節點。

但它不是一個硬性的依賴關係,所以它沒有被bundler捕獲。不想追求相當多的是,我切換uglifier回1.3.0中的Gemfile:

gem 'uglifier', '1.3.0' 

,一切都很好。

+0

我給了一個鏡頭,但得到了同樣的結果。謝謝你的提示。 – Patrick 2013-05-04 18:37:34

相關問題