Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExecJS::RuntimeUnavailable在Rails 4.1.4中_Javascript_Ruby On Rails_Ruby_Windows_Execjs - Fatal编程技术网

Javascript ExecJS::RuntimeUnavailable在Rails 4.1.4中

Javascript ExecJS::RuntimeUnavailable在Rails 4.1.4中,javascript,ruby-on-rails,ruby,windows,execjs,Javascript,Ruby On Rails,Ruby,Windows,Execjs,更新:现在一切正常 多亏了,我安装了node.js,然后得到了一个TZInfo::DataSourceNotFind错误,该错误通过添加gem'TZInfo data',platforms:[:mingw,:mswin]和bundle update得到解决 谢谢你,先生 首先,我是一个完全的rails初学者(只是为了让你了解我是多么的初学者:我觉得自己是一个专家,只需在这里发帖),这是我在这里的第一个问题,如果我不是很清楚,请原谅 因此,我是一名windows 7用户,通过一个月的课程学习ra

更新:现在一切正常

多亏了,我安装了node.js,然后得到了一个TZInfo::DataSourceNotFind错误,该错误通过添加
gem'TZInfo data',platforms:[:mingw,:mswin]
bundle update
得到解决

谢谢你,先生


首先,我是一个完全的rails初学者(只是为了让你了解我是多么的初学者:我觉得自己是一个专家,只需在这里发帖),这是我在这里的第一个问题,如果我不是很清楚,请原谅

因此,我是一名windows 7用户,通过一个月的课程学习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)
$rake路由
雷克流产了!
ExecJS::RuntimeUnavailable:找不到JavaScript运行时。看见https://git
hub.com/sstephenson/execjs获取可用运行时列表。
c:/Users/Marc Montagne/Desktop/pinteresting/config/application.rb:7:in`'
c:/Users/Marc Montagne/Desktop/pinteresting/Rakefile:4:in`'
(通过使用--trace运行任务查看完整跟踪)

$rails服务器
c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/execjs-2.0.2/lib/execjs/run
times.rb:51:在“自动检测”中:找不到JavaScript运行时。看见https://gi
thub.com/sstephenson/execjs获取可用运行时列表。(ExecJS::RuntimeUn)
可用)
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/execjs-2.0.2/l
ib/execjs.rb:5:in`'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/execjs-2.0.2/l
ib/execjs.rb:4:in`'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/uglifier-2.4.0
/lib/uglifier.rb:3:in'require'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/uglifier-2.4.0
/lib/uglifier.rb:3:in`'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:72:in'require'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:72:in`require中的block(2个级别)'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:70:in'each'
来自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'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:59:in'each'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler/runtime.rb:59:in'require'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/
lib/bundler.rb:132:in'require'
来自c:/Users/Marc Montagne/Desktop/pinteresting/config/application.rb:7
:在`'
来自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'
来自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'
来自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'
来自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'
来自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!'
来自c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.4
/lib/rails/commands.rb:17:in`'
从箱子/轨道:4:in“require”
从箱子/轨道:4:in`'
我所理解的是我对ExecJS有一个问题。作为一个完全的初学者,我甚至不知道什么是ExecJS

我阅读了这篇优秀的文章,虽然编辑runtimes.rb并没有解决我的问题,但它仍然让我更好地了解了情况,并愿意通过添加node.js来解决问题,而不是“忽略它”,特别是考虑到我以前可以运行我的服务器,并且我想修复我基本上损坏的问题

我的意思是,我认为我在编辑Windows环境的路径(我甚至不知道这是什么)时犯了错误,因为我在安装Heroku时遇到了一个问题。我记得当我在某个地方读到这篇文章时编辑了这一部分,虽然它似乎已经解决了我的Heroku问题,但我认为它把其余部分搞糟了


提前感谢您的帮助和理解。

这已由@KevinP详细回答

按照上面的链接,您需要进入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
)
^归功于


我也回答了这个问题,几天后就到这里来了

一个快速简便的解决方案是在Gemfile中取消注释这一行,然后再次运行
bundle install

gem 'therubyracer',  platforms: :ruby
Ubuntu用户

我在Ubuntu 11.04上,也有类似的问题。安装Node.js修复了它

从Ubuntu 13.04 x64开始,您只需运行:

sudo apt-get install nodejs
这将解决问题。 CentOS/RedHat用户

sudo yum install nodejs

根据@RedDeath answer,以下是阿尔卑斯山用户的方法:

apk add nodejs

这为我解决了错误。

我想解决问题的最好方法是安装一个类似node.js的js运行时。@deep:我可以试一试,你能不能帮我介绍一下这些步骤,因为我是一个完全的初学者?谢谢,你用的是哪种操作系统?我用的是Windows7!你好,桑托什。该行不在我的Gemfile中(甚至没有注释),所以我手动添加了它并安装了捆绑包,但我一直收到错误消息。@Santosh…回答得好。但是我有几个人犯了这个错误。奇怪的是,这个解决方案只解决了几个问题。准确地说,是的,我想这就是原因。我相信上面的解决方案可以在我运行linux的虚拟机上运行,但是当使用Windows时,呃,唯一的解决方案就是编辑apk add nodejs