Javascript ExecJS::RuntimeUnavailable在Rails 4.1.4中
更新:现在一切正常 多亏了,我安装了node.js,然后得到了一个TZInfo::DataSourceNotFind错误,该错误通过添加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
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