2012年12月23日星期日

解决启动rails server时的错误Could not find a JavaScript runtime.

在Ubuntu下装完rails后便要开始启动它的服务器了,这个时候在终端输入
rails s
会发现报错:
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

这是因为Ubuntu下没有预设的JavaScript编译器来给Rails用的,需要安装一个套件,方法如下:

1. 打开Gemfile这个文件,加入一行gem 'therubyracer',保存。

2. 敲入命令bundle install来安装。装完之后,用命令bundle show therubyracer可以看到装好的therubyracer这个套件。

3. 重新rails s,可以看到问题解决了。

如果Rails版本比较老(3.1以下)的话,还需要在Gemfile里面加入一行gem 'execjs',同样方法安装才可以搞定。

如果通过sudo gem install therubyracer来安装的话,需要在装之前确认有没有安装libv8.如果没有,还需要sudo gem install libv8安装完之后才可以成功装上therubyracer.

另外,这个错误也可以通过安装Node.js来解决。

参考文章:http://ihower.tw/rails3/firststep.html

没有评论:

发表评论