gpt4 book ai didi

javascript - 将 Rails 3.1 项目部署到 Heroku : Could not find a JavaScript runtime 时出现问题

转载 作者:IT王子 更新时间:2023-10-29 03:10:20 24 4
gpt4 key购买 nike

我在将 rails 3.1 beta 项目部署到 heroku 时遇到问题。问题发生在数据库迁移步骤。当我跑的时候:

heroku rake db:migrate

我收到错误信息:

> rake aborted! > Could not find a JavaScript runtime. See> https://github.com/sstephenson/execjs> for a list of available runtimes.> /app/Rakefile:5 > (See full trace by running task with --trace) > (in /app)

But I can successfully run the application locally, and I do have nodejs installed. Any idea why?

Here my gem list:

abstract (1.0.0)
actionmailer (3.1.0.beta1)
actionpack (3.1.0.beta1, 3.0.7)
activemodel (3.1.0.beta1, 3.0.7)
activerecord (3.1.0.beta1)
activeresource (3.1.0.beta1)
activesupport (3.1.0.beta1, 3.0.7)
ansi (1.2.5)
arel (2.1.0)
bcrypt-ruby (2.1.4)
builder (3.0.0, 2.1.2)
bundler (1.0.13)
coffee-script (2.2.0)
coffee-script-source (1.1.0)
configuration (1.2.0)
daemon_controller (0.2.6)
erubis (2.7.0, 2.6.6)
execjs (1.0.0, 0.3.3)
fastthread (1.0.7)
heroku (2.1.4)
hike (1.0.0)
i18n (0.6.0beta1, 0.5.0)
jquery-rails (1.0.1)
json (1.5.1)
json_pure (1.5.1)
launchy (0.4.0)
mail (2.3.0)
mime-types (1.16)
minitest (1.6.0)
multi_json (1.0.1)
mysql (2.8.1)
mysql2 (0.3.2)
oauth (0.4.4)
passenger (3.0.7)
polyglot (0.3.1)
rack (1.3.0.beta, 1.2.2)
rack-cache (1.0.1)
rack-mount (0.7.2, 0.6.14)
rack-ssl (1.3.2)
rack-test (0.6.0, 0.5.7)
rails (3.1.0.beta1)
railties (3.1.0.beta1)
rake (0.8.7)
rdoc (2.5.8)
rest-client (1.6.1)
rubygems-update (1.8.1)
sass (3.1.1)
simplegeo (0.5.1)
sprockets (2.0.0.beta.2)
sqlite3 (1.3.3)
sqlite3-ruby (1.3.3)
term-ansicolor (1.0.5)
therubyracer-heroku (0.8.1.pre3)
thor (0.14.6)
tilt (1.3)
treetop (1.4.9)
turn (0.8.2)
tzinfo (0.3.27)
uglifier (0.5.1)

最佳答案

您需要一个适用于 Rails 3.1 的 JavaScript 引擎(heroku 没有),看起来与 Heroku 一起工作的 JavaScript 引擎是 rubyracer for heroku .

Rails 使用 execjs 来执行 JavaScript,execjs 支持 7 个 JavaScript 引擎。 Node.js 是其中之一,rubyracer 是其中之一。

Gerred Dillon有一个类似的问题并写了它。在评论部分提出了一个关于将此更改为仅生产更改的观点,因为您已经将 nodejs 作为本地 JavaScript 引擎。所以相关代码是:

group :production do
gem 'therubyracer-heroku', '0.8.1.pre3'
end

更新:Heroku 有一个新堆栈,称为 Cedar ,他们推荐 Rails 3.1.0。 (运行 heroku stack 以查看您的应用程序所在的堆栈。)Heroku 也有一个 doc。关于升级到 Rails 3.1.0 rc5。他们建议不要再使用“therubyracer-heroku”gem,因为 rc5 不需要它。

如果您是从旧的 rc 升级,请确保更新您的 config/application.rb 文件,并运行此命令:

heroku config:add PATH=vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin:bin

显然,这是在新应用中设置的,但现有应用尚未设置此路径。

关于javascript - 将 Rails 3.1 项目部署到 Heroku : Could not find a JavaScript runtime 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6075961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com