我最近在windows和linux中都安装了ruby 2.0.0p247和rails 4.0.0。
但在给了rails new Myapp和bundle install之后。
我可以在windows中使用rails s启动它,而没有任何问题,但是在linux中获得javascript运行时错误,可以通过在Gemfile中添加gem 'therubyracer' (或取消注释)来解决这个问题。
我的问题是,在我手动添加therubyracer之前,它是如何在windows中工作的,而在linux中却不起作用。
发布于 2013-09-18 13:03:08
Rails依赖于执事来提供javascript运行时环境。
如果主机操作系统提供本机javascript运行时,Execjs将使用该运行时。这是MacOSX (它有JavascriptCore)和Windows (它有JScript)的情况。
在linux上,没有“默认的js引擎”,这很有意义,因为linux只是一组驱动程序。您将在内核和baselayout之上添加的桌面环境由您决定。您将使用的javascript实现也是如此。最常见的两种是node.js和犀牛( mozilla解释器)。
Therubyracer实际上只是一个宝石,嵌入了v8的二进制副本,这是node.js背后的引擎。
https://stackoverflow.com/questions/18872781
复制相似问题