rails portable instal create javascript ruby-on-rails ruby heroku

portable - Problema al implementar el proyecto de Rails 3.1 en Heroku: no se pudo encontrar un tiempo de ejecuciĆ³n de JavaScript



ruby on rails heroku (4)

A partir de la fecha de esta publicación, aún necesita especificar

gema ''therubyracer-heroku'', ''0.8.1.pre3''

en tu archivo gem para desplegar con éxito una aplicación Rails 3.1 a la plataforma Cedar de Heroku.

Si bien es posible implementar aplicaciones Node en la plataforma Cedar, Node no está presente en la pila Cedar al implementar aplicaciones Rails, por lo que debe agrupar su propio tiempo de ejecución de JavaScript.

Por ahora.

Sé que las personas del lado de Rails están trabajando para eliminar la dependencia de tener un tiempo de ejecución js, http://yehudakatz.com/2011/06/14/what-the-hell-is-happening-to-rails/ y estoy seguro de que Heroku también está buscando maneras de hacer que las implementaciones de Rails 3.1 simplemente funcionen.

Tengo problemas para implementar un proyecto de rails 3.1 beta en heroku. El problema ocurrió en el paso de migración de la base de datos. Cuando corrí:

heroku rake db:migrate

Recibí un mensaje de error:

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

Pero puedo ejecutar la aplicación con éxito localmente, y tengo nodejs instalado. ¿Alguna idea de por qué?

Aquí mi lista de gemas:

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)


En mi caso, sucedió después de cargarlo exitosamente a Heroku y acceder a la página.

ActionView::Template::Error (Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. 2012-01-09T08:21:19+00:00 app[web.1]: (in /app/app/assets/javascripts/page.js.coffee)):

Establecer ruta usando ''configuración heroku: agregar RUTA RUTA'' no ayudó.

"rake assets: precompile" lo resolvió.

Espero que ayude a alguien como yo!


Necesita un motor de JavaScript para Rails 3.1 (heroku no tiene uno), y parece que el motor de JavaScript que funciona con Heroku es el rubyracer para heroku .

Rails usa execjs para ejecutar JavaScript y execjs es compatible con 7 motores de JavaScript. Node.js es uno, y rubyracer es uno.

Gerred Dillon tuvo un problema similar y escribió al respecto. En la sección de comentarios, se planteó un punto sobre hacer que esto sea solo un cambio de producción, ya que usted tiene nodejs como su motor de JavaScript local. Entonces el código relevante es:

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

ACTUALIZACIÓN: Heroku tiene una nueva pila, llamada Cedar , que recomiendan para Rails 3.1.0. (Ejecute heroku stack para ver en qué apilamiento se encuentra su aplicación). Heroku también tiene un doc sobre la actualización a Rails 3.1.0 rc5. Recomiendan no usar la gema ''therubyracer-heroku'' ya que no es necesario con rc5.

Si está actualizando desde un rc antiguo, asegúrese de actualizar su archivo config / application.rb y también ejecute este comando:

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

Aparentemente, esto está establecido en nuevas aplicaciones, pero las aplicaciones existentes no han establecido esta RUTA.


No necesita necesariamente un tiempo de ejecución de JavaScript para implementar Rails 3.1 beta en heroku.

El tiempo de ejecución de JavaScript solo es necesario si está minimizando javascript en la implementación (es decir, a través de la gema uglifier ) o si está utilizando coffee-script.

Parece que esta dependencia de tiempo de ejecución de JavaScript no estará allí para la versión final 3.1.

En caso de que no te importe no minimizar tu javascript (y también si no estás usando coffee-script), entonces puedes comentar las gemas coffee-script, uglifier y execjs en el Gemfile y también comentar config.assets. js_compressor en su production.rb y debería estar listo para comenzar .