11

私は、RoR を Passenger と Nginx で動作させることを試みてきました。男はそれが冒険でした。私はついにサーバーを稼働させ、テストサイトをホストしています。アセットでエラーが発生しています。を使用して application.js をコンパイルできませんbundle exec rake assets: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.assets.compile = trueして再起動すると、サイトをリロードし、 production.log に次のメッセージが表示されますconfig/environments/production.rb

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 を使用しており、次の gem がローカルにインストールされています。

*** 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

このセットアップをいじり続けると、assets/javascript ディレクトリにある application.js ファイルなしでアセットがコンパイルされ、css が正しくコンパイルされているように見えますが、更新後に Web ページに表示されないことがわかりました。サーバーとサイト。スタイルを Web ページに直接配置すると、適切にレンダリングされます。

関連ファイルは次のとおりです: 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;
}

public/application.css

.content{border:1px solid #999;padding:5px}

これが別の質問であるかどうかはわかりません。そうであれば、それを引き出すことができますが、念のため追加したかったのです。

私は自分の考えの終わりに到達しました。アイデアや提案は大歓迎です。情報が不足している場合はお知らせください。可能な限りギャップを埋めることができます。

ありがとう、パトリック

4

3 に答える 3

1

試してみてください:

//= require_tree .

それ以外の

//= require_tree

最後にドットで。ガイドのように: http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives

于 2016-01-27T23:02:21.193 に答える
0

すでにデプロイされている古いアプリで gem を更新した後、同じエラーが発生しました。1.3.0 から 2.0.1 にアップグレードされたので、uglifier に絞り込みました。そのREADMEによると、JS インタープリターが必要です。

ExecJS でサポートされている JavaScript インタープリターが環境にあることを確認してください。therubyracer gem をインストールすることは安全な選択であり、PATH にノードを含めることも機能します。

しかし、これは強い依存関係ではないため、バンドラーに引っかかることはありませんでした。まだそれを追求したくないので、Gemfile で uglifier を 1.3.0 に戻しました。

  gem 'uglifier', '1.3.0'

そしてすべてが順調でした。

于 2013-05-02T20:31:55.363 に答える
-1

以下の行フォームapplication.jsを削除することを確認してください

//= require_tree

require_treeapp/javascripts ディレクトリ内のすべてのファイルを再帰的にロードします

動作する場合は、app/assets/javascripts ディレクトリにある JavaScript ファイルの 1 つに問題があります。

ディレクトリ内のすべてのファイルを確認するか、

application.js でファイルを 1 つずつ必要とする

//= require js_file_name
于 2013-04-24T06:02:16.767 に答える