对于该怎么做感到困惑。 RailsInstaller安装默认rails。
启动了一个新的演示应用。使用rails 3.2.14。
创建了一个控制器
rails generate controller Say hello goodbye
但是每当我导航到localhost时,都会返回execjs错误。
所以
http://localhost:3000/say/hello
我收到了
ExecJS::RuntimeError in Say#hello
Showing c:/work/demo/app/views/layouts/application.html.erb where line #6 raised:
(in c:/work/demo/app/assets/javascripts/say.js.coffee)
Extracted source (around line #6):
3: <head>
4: <title>Demo</title>
5: <%= stylesheet_link_tag "application", :media => "all" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: </head>
9: <body>
Rails.root: c:/work/demo
我一直试图寻找解决方案,但我认为唯一适用的解决方案并没有帮助。
我在下面添加了我的gemfile并进行了捆绑更新。没有成功。
gem 'execjs'
gem 'therubyracer', :platforms => :ruby
我该怎么办?
修改
gemfile.lock http://pastebin.com/hGPJpxLp
答案 0 :(得分:1)
查找ExecJS的runtimes.rb
文件。
bundle show execjs
进行备份。打开runtimes.rb
并进行修改。找到以行JScript = ExternalRuntime.new(
开头的部分。在包含:command => "cscript //E:jscript //Nologo //U"
的行上, - 仅删除//U
。现在在包含:encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE
的行中 - 将UTF-16LE
更改为UTF-8
。保存更改。结果应该是:
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
)
重启rails s,问题应该解决。
答案 1 :(得分:1)
使用gem install节点。 我不知道为什么会有效,但它确实有效。
答案 2 :(得分:0)
确保您在资产组下有gem 'therubyracer'
和gem 'execjs'
,然后运行bundle install
,您也可以尝试Node.js而不是execjs
答案 3 :(得分:0)
我也遇到了问题,在R&amp; D我安装了node.js(http://nodejs.org/download/)后问题就解决了。
答案 4 :(得分:0)
添加宝石宝石'execjs'为我做了。