5

更新: 動作するようになりました!

deepのおかげで、node.js をインストールして TZInfo::DataSourceNotFound エラーが発生し、gem 'tzinfo-data', platforms: [:mingw, :mswin]とを追加することで解決しましたbundle update

ありがとうございます !


まず第一に、私はレールの完全な初心者です (初心者であることがわかるように: ここに投稿するだけで専門家だと感じます)。これがここでの最初の質問です。クリア。

だから、私は Windows 7 ユーザーで、One Month コースで Rails を学んでいます。

$ rake routes
rake aborted!
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://git
hub.com/sstephenson/execjs for a list of available runtimes.
c:/Users/Marc Montagne/Desktop/pinteresting/config/application.rb:7:in `<top (re
quired)>'
c:/Users/Marc Montagne/Desktop/pinteresting/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

また

$ rails server
c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/execjs-2.0.2/lib/execjs/run
times.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://gi
thub.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUn
available)
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/execjs-2.0.2/l
ib/execjs.rb:5:in `<module:ExecJS>'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/execjs-2.0.2/l
ib/execjs.rb:4:in `<top (required)>'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/uglifier-2.4.0
/lib/uglifier.rb:3:in `require'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/uglifier-2.4.0
/lib/uglifier.rb:3:in `<top (required)>'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:72:in `require'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:72:in `block (2 levels) in require'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:70:in `each'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:70:in `block in require'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:59:in `each'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:59:in `require'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler.rb:132:in `require'
        from c:/Users/Marc Montagne/Desktop/pinteresting/config/application.rb:7
:in `<top (required)>'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.4
/lib/rails/commands/commands_tasks.rb:79:in `require'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.4
/lib/rails/commands/commands_tasks.rb:79:in `block in server'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.4
/lib/rails/commands/commands_tasks.rb:76:in `tap'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.4
/lib/rails/commands/commands_tasks.rb:76:in `server'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.4
/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
        from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.4
/lib/rails/commands.rb:17:in `<top (required)>'
        from bin/rails:4:in `require'
        from bin/rails:4:in `<main>'

私が理解しているのは、ExecJS に問題があるということだけです。完全な初心者として、私は ExecJS が何であるかさえ知りません。

素晴らしいスレッド#12520456を読みましたが、runtimes.rbを編集しても問題は解決しませんでしたが、状況をよりよく理解し、ノードを追加して「無視」するのではなく、問題を解決することで問題を解決する意欲が得られました。特に、以前はサーバーを実行できたという事実と、基本的に壊れたものを修正したいという事実を考えると.

つまり、Heroku のインストールで発生した問題を修正するために、Windows 環境の PATH を編集したときに何か間違ったことをしたと思います (これが何であるかさえわかりません)。どこかで読んだときにその部分を編集したことを覚えています。Herokuの問題は修正されたように見えましたが、残りは台無しになったと思います。

ご理解とご協力をお願いいたします。

4

4 に答える 4

13

Ubuntu ユーザー

私はUbuntu 11.04を使用していますが、同様の問題がありました。Node.jsをインストールすると修正されました。

Ubuntu 13.04 x64 以降、実行する必要があるのは次のとおりです。

sudo apt-get install nodejs

これで問題は解決します。CentOS/RedHat ユーザー

sudo yum install nodejs
于 2014-12-03T04:57:32.850 に答える
5

迅速かつ簡単な解決策は、Gemfile でこの行のコメントを外して、bundle install再度実行することです

gem 'therubyracer',  platforms: :ruby
于 2014-07-07T11:58:29.927 に答える
1

これは、@KevinP hereによって非常に詳細に回答されています。

上記のリンクに続いて、Execjs に移動しruntimes.rb、彼の回答で指定された行を変更する必要があります。その後、サーバーを再起動すると、サーバーが機能し始めるはずです。

変更する必要があるブロックは次のようになります。

JScript = ExternalRuntime.new(
  :name        => "JScript",
  :command     => "cscript //E:jscript //Nologo",
  :runner_path => ExecJS.root + "/support/jscript_runner.js",
  :encoding    => 'UTF-8' # CScript with //U returns UTF-16LE
)

^ Kevin Pのクレジット。

私もこの質問に答えました数日ここに行きます。https://stackoverflow.com/a/24591983/2456549

于 2014-07-07T11:54:22.070 に答える