【问题标题】:Rails-4, ExecJS::ProgramError in Pages#welcomeRails-4,页面中的 ExecJS::ProgramError#welcome
【发布时间】:2015-03-30 06:55:11
【问题描述】:

我正在尝试向我的 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'

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

谢谢, 楚乔

【问题讨论】:

标签: ruby-on-rails-4


【解决方案1】:

coffee-script-source 1.9.0 在 windows 上运行时出现问题。

看来您必须将其添加到您的 gemfile 中:

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

然后做

bundle update coffee-script-source

【讨论】:

  • 谢谢@KeithP,你怎么知道我的windows运行的是coffee-script-source 1.9.0?它甚至没有在 gem 文件中提及。
  • 我用 coffee-script-source, 1.8.0 更新了我的应用程序,但仍然遇到同样的错误。好像什么都没做。还在看它会更新你..
  • 只需在上面的代码段中注释这一行就解决了我的问题。 true %> 不确定这是否是首选解决方案,但肯定有助于我前进。
  • 安装 x86 nodejs 运行时对我有帮助,而无需更改 gemfile。
  • 更新完成后别忘了重启服务器。
【解决方案2】:

@Chuchoo,评论&lt;%=javascript_include_tag 'application', 'data-turbolinks-track'=&gt;true %&gt; 解决了这个问题。

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

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

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

刷新您的页面,一切顺利。

【讨论】:

  • 这只会给你制造更多的问题。请按照第一个答案!
【解决方案3】:

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

【讨论】:

  • 那么请解释一下视频的内容
【解决方案4】:

安装node.js x86版本(64位电脑也不是x64版本)你可以从https://nodejs.org/en/download/下载

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

  • 不需要“coffee-script-source”或“execjs”
  • 连execjs文件都不需要修改
  • 不需要为 Node.js 添加路径,因为 x86 会自动添加它

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

【讨论】:

  • 这对我有用,即使普通安装程序x64.msi 在很长一段时间内都无法解决咖啡问题。非常感谢。
【解决方案5】:

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

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

【讨论】:

  • 不是正确的解决方案。这只是禁用应用程序的 CSS 和 JS
【解决方案6】:

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

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

【讨论】:

  • 这不是解决办法,回答时请说明原因
【解决方案7】:

我遇到了同样的问题,我通过将以下代码添加到 config\initializer\assets.rb 来修复它

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

【讨论】:

    【解决方案8】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 2016-06-22
      • 1970-01-01
      相关资源
      最近更新 更多