当前位置: 首页 > 知识库问答 >
问题:

ExecJS::RuntimeError在Windows上尝试遵循rubytutorial

臧俊杰
2023-03-14

更新:Colin关于删除行//=require_tree的建议。已经解决了这个问题。

我已经浪费了两天的时间,试图遵循每一个建议,并解决我的问题。我正在尝试在windows机器上学习http://ruby.railstutorial.org的书籍,但我一辈子都无法克服以下严重的错误。

ExecJS::RuntimeError in Static_pages#home

Showing C:/Users/.../bootcamp-sample-app/app/views/layouts/application.html.erb where line #6 raised:

["ok","(function() {\n\n\n\n}).call(this);\n"]
(in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee)
Extracted source (around line #6):

3: <head>
4:   <title><%= full_title(yield(:title)) %></title>
5:   <%= stylesheet_link_tag    "application", media: "all" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8:   <%= render 'layouts/shim' %>
9: </head>
Rails.root: C:/Users/.../bootcamp-sample-app

Application Trace | Framework Trace | Full Trace
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___487732698_30422172'
Request

我已经尝试了每一个建议,包括在msi中安装nodejs,使用ExecJS1.3.0和其他我已经记不清楚的东西。这是gem文件

source 'https://rubygems.org'

gem 'rails', '3.2.8'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'

group :development, :test do
  gem 'sqlite3', '1.3.5'
  gem 'rspec-rails', '2.10.0'
  gem 'guard-rspec', '0.5.5'
  gem 'guard-cucumber'
end

group :development do
  gem 'annotate', '2.5.0'
end


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails'
  gem 'coffee-rails'
  gem 'coffee-script'
  gem 'uglifier'
end

gem 'jquery-rails', '2.0.2'

gem 'execjs'

# Gems on Linus/Mac
#gem 'therubyracer'


group :test do
  gem 'capybara', '1.1.2'
  gem 'guard-spork', '0.3.2'
  gem 'spork', '0.9.0'
  gem 'factory_girl_rails', '1.4.0'
  gem 'cucumber-rails', '1.2.1', require: false
  gem 'database_cleaner', '0.7.0'


# Test gems on Linux
#  gem 'rb-inotify', '0.8.8'
#  gem 'libnotify', '0.5.9'

# Test gems on Macintosh OS X
#  gem 'selenium-webdriver', '~> 2.22.0'
#  gem 'rb-fsevent', '0.9.1', :require => false
#  gem 'growl', '1.0.3'

# Test gems on Windows
# gem 'rb-fchange', '0.0.5'
# gem 'rb-notifu', '0.0.4'
# gem 'win32console', '1.3.0'
end

group :production do
#  gem 'therubyracer'
  gem 'pg', '0.12.2'
end

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
#gem 'debugger''
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require bootstrap
<!DOCTYPE html>
 <html>
 <head>
   <title><%= full_title(yield(:title)) %></title>
   <%= stylesheet_link_tag    "application", media: "all" %>
   <%= javascript_include_tag "application" %>
   <%= csrf_meta_tags %>
   <%= render 'layouts/shim' %>
 </head>
 <body>
 <%= render 'layouts/header' %>
 <div class="container">
   <%= yield %>
   <%= render 'layouts/footer' %>
 </div>
 </body>
 </html>
Processing by StaticPagesController#home as HTML
  Rendered static_pages/home.html.erb within layouts/application (45.0ms)
Completed 500 Internal Server Error in 1136ms

ActionView::Template::Error (["ok","(function() {\n\n\n\n}).call(this);\n"]
  (in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee)):
    3: <head>
    4:   <title><%= full_title(yield(:title)) %></title>
    5:   <%= stylesheet_link_tag    "application", media: "all" %>
    6:   <%= javascript_include_tag "application" %>
    7:   <%= csrf_meta_tags %>
    8:   <%= render 'layouts/shim' %>
    9: </head>
  app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___487732698_30422172'


  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms)
  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms)
  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (34.0ms)

我已经安装了Devkit并尝试了各种gems,但请建议可以帮助我在Windows上开发的更改。我用rubyinstaller处理所有的事情。

我错过了什么?

共有1个答案

郎喜
2023-03-14

几个月前,我的朋友尝试使用Win 8 RTM上的Rails教程时遇到了这个错误。不确定Windows7中是否也存在此问题,但这可能会有所帮助。

选项:

1)删除//=require_tree./忽略问题-正如ColinR上面所说的,这一行首先不应该导致问题。在系统上,ExecJS与JavaScript运行时正常工作是一个实际问题,删除这一行只是忽略了这一事实。

  • TherubyRacer-嵌入到Ruby中的Google V8
  • TherubyRhino-嵌入到JRuby中的Mozilla Rhino
  • node.js
  • Apple JavaScriptCore-包含在Mac OS X中
  • Microsoft Windows脚本主机(JScript)

(摘自github.com/sstephenson/execjs#execjs)

3)实际解决问题/学习--利用选项1和选项2的知识寻找其他解决方案。我不能告诉你我关闭了多少网页,看到选项1或2是被接受的解决方案,然后才真正找到关于我们正在进行的根问题的信息。我们一直在寻找的唯一原因是,我们无法相信Rails团队会(1)在每个产生问题的scaffold项目中插入一行代码,或者(2)要求我们安装额外的软件来运行默认的代码行。因此,我们最终找到了一个解决我们的根问题的方法(您的里程数可能会有所不同)。

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
)
 类似资料:
  • 问题内容: 更新: 建议删除行// =require_tree。已解决此问题。 我浪费了超过2天的时间来尝试遵循所有建议并解决我的问题。我正在尝试在Windows机器上关注http://ruby.railstutorial.org一书,但我一生无法克服以下令人讨厌的错误。 我尝试了所有建议,包括使用msi安装nodejs,使用execjs 1.3.0以及其他我什至不记得的东西。这是 gem文件 这

  • 问题内容: 我正在Windows机器上尝试使用Threading and Multiprocessing的第一个正式python程序。我无法启动进程,但是python给出了以下消息。问题是,我没有在 主 模块中启动线程。线程在类内的单独模块中处理。 编辑 :顺便说一句,此代码在ubuntu上运行良好。在窗户上不太 我的原始代码很长,但是我能够以节略的版本重现该错误。它分为两个文件,第一个是主模块,

  • 我正在学习关于heroku/facebook集成的heroku教程(但我怀疑这个问题与facebook集成无关),结果我被困在了我应该开始foreman的阶段(我已经安装了用于windows的heroku installbelt,其中包括foreman): 给出: 由于我在这方面完全是一个笨蛋,我不确定我这里的问题是否是在遵循Python/flask Heroku教程时在“Foreman star

  • 我正试图开始使用Rust FFI,所以我去了FFI上的nomicon留档,尝试复制“外国呼叫约定”示例。 我编写了一段简单的代码,只需复制粘贴示例,并尝试使用声明的函数: 这真的没有什么用处,我只是想看看我是否可以链接并调用一个函数,而不会让一切都爆炸。 我从编译器中得到这个错误: 这个例子过时了吗?我是不是漏掉了什么明显的东西?看起来不管怎样,我声明的应该在范围内。 我知道winapi板条箱,但

  • ExecJS 可以让你在 Ruby 中运行 JavaScript 代码。它会自动选择最佳的运行环境并执行你的 JavaScript 程序,并将结果赋值给 Ruby 对象。 ExecJS 支持如下平台 therubyracer - Google V8 embedded within Ruby therubyrhino - Mozilla Rhino embedded within JRuby Nod

  • 问题内容: 另一个Docker符号链接问题。我有一堆文件要复制到我的所有Docker构建中。我的目录结构是: 在上面的示例中,当我在dir1中进行docker构建时,我希望将file.txt复制过来。但是我不想维护file.txt的多个副本。每此链接,作为搬运工版本0.10,码头工人的作品必须 按照容器根目录内的符号链接获取ADD构建说明。 但是当我在Dockerfile中使用以下任一行进行构建时