Rails 4,ExecJS :: ProgramError Pages#welcome

我正在尝试将login注销function添加到我的Rails应用程序。 为此,我添加了密码encryption的bcrypt gem以及访问控制器。 现在,当我在本地运行它时,我收到一条错误消息。 在添加上述function之前,我的应用运行良好。

错误信息:

 TypeError: Object doesn't support this property or method (in C:/DevKit/lib/ruby/gems/1.9.1/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee) Extracted source (around line #8): <head> <title>PostApp</title> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track'=>true %> <%= javascript_include_tag 'application', 'data-turbolinks-track'=>true %> ----> Line 8 <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> <%= csrf_meta_tags %> 

的Gemfile:

 source 'http://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '4.1.4' # Use sqlite3 as the database for Active Record group :development do gem 'sqlite3' end group :production do gem 'pg' end # Use SCSS for stylesheets gem 'sass-rails', '~> 4.0.3' # Use Uglifier as compressor for JavaScript assets gem 'uglifier', '>= 1.3.0' # Use CoffeeScript for .js.coffee assets and views gem 'coffee-rails', '~> 4.0.0' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', platforms: :ruby # Use jquery as the JavaScript library gem 'jquery-rails' # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks gem 'turbolinks' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 2.0' # bundle exec rake doc:rails generates the API under doc/api. gem 'sdoc', '~> 0.4.0', group: :doc # Use ActiveModel has_secure_password gem 'bcrypt', '~> 3.1.7' 

我不知道我得到什么types的错误。 任何想法可能会发生什么?

谢谢,Chuchoo

在windows上运行的coffee-script-source 1.9.0有一个问题。

看来你必须把这个添加到你的gemfile中:

 gem 'coffee-script-source', '1.8.0' 

然后做

 bundle update coffee-script-source 

安装node.js x86版本( 即使有64位计算机也不是x64版本 )可以从https://nodejs.org/en/download/下载;

所有其他的答案是不是必须的。

  • 不需要“coffee-script-source”或“execjs”
  • 不需要修改甚至execjs文件
  • 无需为Node.js添加path,因为x86会自动添加path

我遇到了同样的问题,并通过将以下代码添加到config \ initializer \ assets.rb中来解决此问题

 Rails.application.config.assets.precompile += %w( application.css ) 

@Chuchoo,评论<%=javascript_include_tag 'application', 'data-turbolinks-track'=>true %>解决了这个问题。

对于那里的许多新手来说,有关如何到达解决scheme的更多细节。

转到您的应用程序目录,从your_app> app> views> layouts> application.html.erb访问application.html.erb文件,并在第6行注释javascript。

 <!--%= javascript_include_tag 'application', 'data-turbolinks-track' => true %--> 

刷新你的页面,你很好去。

转到您的应用程序目录,然后打开app / views / layouts中的application.html.erb文件,并注释这两行(第5和第6),如下所示:

  <!-- %= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> %= javascript_include_tag 'application', 'data-turbolinks-track' => true %> --> 

刷新您的网页,并解决您的问题!

取消注释(app / assets / javascripts / application.js)

 //= require jquery //= require jquery_ujs //= require turbolinks //= require_tree . 

你好,我有同样的问题,你可以做到这一点: https : //www.youtube.com/watch?v= N5i94L17KPo现在适用于我。