Rails-4, ExecJS::ProgramError in Pages#welcome



我正在尝试向我的rails应用程序添加登录注销功能。为此,我添加了bcrypt用于密码加密的 gem 和访问控制器。现在,当我在本地运行它时,我收到一条错误消息。在添加上述功能之前,我的应用程序运行良好。

错误信息:

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 %>

宝石文件:

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'

我不知道我遇到了什么样的类型错误。知道会发生什么吗?

谢谢楚乔

在 Windows 上运行的 coffee-script-source 1.9.0 存在问题。

似乎您必须将其添加到您的 gemfile 中:

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

然后做

bundle update coffee-script-source

我遇到了同样的问题,我通过将以下代码添加到配置\初始值设定器\assets.rb 来修复它

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

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

所有其他答案都不是必需的。

  • 不需要"咖啡脚本源"或"execjs"
  • 甚至无需修改可执行文件
  • 无需为 Node 添加路径.js因为 x86 会自动添加它

安装 node.js 后,您需要重新启动 rails 服务器和它正在运行的 CMD shell,以更新它将看到的路径。

只是在上面的代码段中注释这一行解决了我的问题。

<%=j avascript_include_tag 'application', 'data-turbolinks-track'=>true %> 

不确定这是否是首选解决方案,但肯定帮助我前进。

@Chuchoo,注释<%=javascript_include_tag 'application', 'data-turbolinks-track'=>true %>可以解决问题。

对于那里的许多新手,有关如何获得解决方案的更多详细信息。

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

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

刷新您的页面,您就可以开始了。

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

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

转到您的应用程序目录,然后在 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 %> -->

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

你好,我遇到了同样的问题,你可以这样做: https://www.youtube.com/watch?v=N5i94L17KPo 它现在对我有用。

最新更新