ExecJS::Absturz mit Laufzeitfehler auf Windows versucht zu Folgen rubytutorial
UPDATE: Colin's Vorschlag, der das entfernen der Zeile" //= require_tree . behoben hat das Problem.
Ich habe verschwendet über 2 Tage versucht, jeden Vorschlag gibt, und mein Problem behoben. Ich bin versucht zu Folgen, die http://ruby.railstutorial.org Buch über windows-Rechner und kann nicht für das Leben von mir bekommen, vorbei an den folgenden fiesen Fehler.
ExecJS::RuntimeError in Static_pages#home
Showing C:/Users/.../bootcamp-sample-app/app/views/layouts/application.html.erb where line #6 raised:
["ok","(function() {\n\n\n\n}).call(this);\n"]
(in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee)
Extracted source (around line #6):
3: <head>
4: <title><%= full_title(yield(:title)) %></title>
5: <%= stylesheet_link_tag "application", media: "all" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: <%= render 'layouts/shim' %>
9: </head>
Rails.root: C:/Users/.../bootcamp-sample-app
Application Trace | Framework Trace | Full Trace
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___487732698_30422172'
Request
Ich habe versucht, jeden Vorschlag, einschließlich der Installation von nodejs mit dem msi, mit execjs 1.3.0 und andere Dinge, die ich kann nicht einmal daran erinnern, nicht mehr. Hier ist die gem-Datei
source 'https://rubygems.org'
gem 'rails', '3.2.8'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
group :development, :test do
gem 'sqlite3', '1.3.5'
gem 'rspec-rails', '2.10.0'
gem 'guard-rspec', '0.5.5'
gem 'guard-cucumber'
end
group :development do
gem 'annotate', '2.5.0'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails'
gem 'coffee-rails'
gem 'coffee-script'
gem 'uglifier'
end
gem 'jquery-rails', '2.0.2'
gem 'execjs'
# Gems on Linus/Mac
#gem 'therubyracer'
group :test do
gem 'capybara', '1.1.2'
gem 'guard-spork', '0.3.2'
gem 'spork', '0.9.0'
gem 'factory_girl_rails', '1.4.0'
gem 'cucumber-rails', '1.2.1', require: false
gem 'database_cleaner', '0.7.0'
# Test gems on Linux
# gem 'rb-inotify', '0.8.8'
# gem 'libnotify', '0.5.9'
# Test gems on Macintosh OS X
# gem 'selenium-webdriver', '~> 2.22.0'
# gem 'rb-fsevent', '0.9.1', :require => false
# gem 'growl', '1.0.3'
# Test gems on Windows
# gem 'rb-fchange', '0.0.5'
# gem 'rb-notifu', '0.0.4'
# gem 'win32console', '1.3.0'
end
group :production do
# gem 'therubyracer'
gem 'pg', '0.12.2'
end
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
#gem 'debugger''
und hier ist die Sitzungen.js.Kaffee
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
application.js
// This is a manifest file that'll be compiled into application.js, which will include all the files
//listed below.
//
//Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
//or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
//It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
//the compiled file.
//
//WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require bootstrap
Anwendung.html-Code.erb
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag "application", media: "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
<%= render 'layouts/shim' %>
</head>
<body>
<%= render 'layouts/header' %>
<div class="container">
<%= yield %>
<%= render 'layouts/footer' %>
</div>
</body>
</html>
Hier ist Konsole Inhalt
Processing by StaticPagesController#home as HTML
Rendered static_pages/home.html.erb within layouts/application (45.0ms)
Completed 500 Internal Server Error in 1136ms
ActionView::Template::Error (["ok","(function() {\n\n\n\n}).call(this);\n"]
(in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee)):
3: <head>
4: <title><%= full_title(yield(:title)) %></title>
5: <%= stylesheet_link_tag "application", media: "all" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: <%= render 'layouts/shim' %>
9: </head>
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___487732698_30422172'
Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms)
Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms)
Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (34.0ms)
Habe ich installiert Devkit und haben versucht, verschiedene Edelsteine, aber bitte änderungen vorschlagen, die mir helfen kann, die Entwicklung auf windows. Ich verwendet rubyinstaller für alles.
Was bin ich?
//= require_tree .
aus application.js
und sehen, ob der Fehler weiterhin besteht?WOW.... das war der trick... vielen Dank Colin, das entfernen der Zeile " / / = require_tree . behoben hat das Problem. Ich kann nicht erklären, was für eine Erleichterung das ist, aber kann u plz erklären, warum diese Zeile den Fehler verursacht?
Die Linie ist das kompilieren jedes
.js.coffee
Datei in app/assets/javascripts
in JavaScript und dann hinzufügen, um Ihr layout (aber nur im development-Modus; im Modus Produktion, die zusammengestellt js Hinzugefügt, um Ihre application.js
- Datei). Mit require_tree .
sollte kein Fehler verursacht, also irgendwie hast du ein Problem mit einer der Dateien, die eingeschlossen werden. Kannst du eine Liste aller Dateien in Ihrem app/assets/javascripts
- Verzeichnis? Sie können auch versuchen komplett zu löschen den Inhalt sessions.js.coffee
hinzufügen und zurück //= require_tree .
und sehen, ob der Fehler immer noch vorhanden ist.sollten Sie dies als eine Antwort auf die Frage. Ich hatte das gleiche Problem und wenn ich nicht hatte, durchsuchten die Kommentare, ich würde gehalten haben, auf der Suche nach einer anderen Frage.
InformationsquelleAutor user1687078 | 2012-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein Freund war der Versuch, eine Rails-tutorial auf Win 8 RTM vor ein paar Monaten und lief in diese Fehlermeldung. Nicht sicher, ob dieses Problem ist in Windows 7 auch, aber das kann helfen.
Optionen:
1) Entfernen
//= require_tree .
/Ignorieren das Problem - Als ColinR oben erwähnt, diese Zeile sollte nicht zu einem Problem in den ersten Platz. Es ist tatsächlich ein problem, mit ExecJS richtig funktioniert mit der JavaScript-runtime auf Ihrem system und entfernen Sie diese Zeile einfach ignorieren diese Tatsache.2) Installieren Node.js /weglaufen - Viele Menschen scheinen nur am Ende der Installation Node.js und verwenden, die anstelle der JavaScript-runtime bereits auf Ihrem system. Das ist zwar eine Valide option, es erfordert auch zusätzliche software und verhindert nur das ursprüngliche Problem, nämlich, dass ExecJS nicht richtig funktioniert mit der JavaScript-runtime bereits auf Ihrem system. Wenn die vorhandene JavaScript-runtime auf Ihrem system funktionieren soll, warum nicht machen es zu arbeiten, anstatt software installieren? Nach der ExecJS Schöpfer, die Laufzeit, die bereits in Windows integriert ist, in der Tat unterstützt...
3) Tatsächlich Festsetzung der Frage /Lernen - die Kenntnisse der Optionen 1 und 2 auf die Suche nach anderen Lösungen. Ich kann Ihnen nicht sagen, wie viele Webseiten ich geschlossen, nach dem sehen die Optionen 1 oder 2 die akzeptierte Lösung, bevor Sie tatsächlich zu finden, Informationen über die root-Problem, das wir hatten. Der einzige Grund, warum wir immer auf der Suche war, dass wir nicht glauben konnten, dass das Rails-team (1) fügen Sie eine Zeile code in jeder scaffold-generierten Projekt, das verursacht ein Problem, oder (2) verlangen, dass wir zusätzliche software installieren, einfach nur zu laufen, dass die Standard-Zeile von code. Und so wir kamen schließlich an einem Update für unsere root-Problem (Ihre Meilen können variieren).
Das Update, das für uns gearbeitet:
Auf dem system Probleme haben, finden ExecJS ist Laufzeiten.rb - Datei. Es sieht aus wie diese. Kopieren Sie die Gefundene Datei für die Sicherung. Öffnen Sie die ursprünglichen Laufzeiten.rb für die Bearbeitung. Finden Sie den Abschnitt, der beginnt mit der Zeile
JScript = ExternalRuntime.new(
. In diesem Abschnitt auf die Zeile, die:command => "cscript //E:jscript //Nologo //U",
- entfernen Sie die//U
nur. Dann auf die Zeile, die:encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE
- ändern UTF-16LE zuUTF-8
. Speichern Sie die änderungen an der Datei. Dieser Abschnitt der Datei sollte jetzt lauten:Nächste, stoppen starten Sie den Rails-server und aktualisieren Sie die Seite in Ihrem browser, produziert der ursprüngliche Fehler. Hoffentlich wird die Seite geladen ohne Fehler jetzt. Hier ist die ExecJS Problem-thread, wo wir ursprünglich gebucht unsere Ergebnisse: https://github.com/sstephenson/execjs/issues/81#issuecomment-9892952
Wenn dies nicht beheben das Problem, kann man immer überschreiben Sie die geänderte Laufzeiten.rb mit der Sicherungskopie, die Sie (hoffentlich) gemacht und alles wieder auf Platz eins. In diesem Fall sollten Sie die option 3 und sucht weiter. Lassen Sie uns wissen, was letztendlich für Sie arbeitet.. es sei denn, es ist das entfernen der require_tree oder installieren node.js es gibt viele, die gehen, um bereits. 🙂
Ich wünschte, ich könnte Ihnen +50 Stimmen. Dies wurde irking mir zu lange versuchen zu bekommen, therubyracer für Windows, merken es nicht unterstützt wird, dann versuchen zu bekommen ExecJS ordnungsgemäß geladen wurde. Vielen Dank für die Zeit nehmen, mir zu helfen, lernen und nicht zu verschleiern das Problem! Für diejenigen Fragen, können Sie sich die Lage der Laufzeiten.rb-Datei durch Eingabe von "Juwel, das execjs"
Ich hatte, um Bundles zu installieren, nachdem Sie diese änderung vorgenommen, um für Sie zu arbeiten. Also, wenn jemand bietet diese Lösung einen Versuch, und es scheint nicht zu funktionieren auf den ersten, stellen Sie sicher, dass Sie versuchen, die! Ich bin auf windows 8 64-bit, und bei mir hat es geklappt! Dank
Kommentar zu option 3: github.com/sstephenson/execjs/issues/111 sagt, dass wir das problem lösen können, nur durch eine änderung
UTF-16LE
zuUTF-16
ohne removig die//U
option. Ich bestätigte es.Ich sehe eine Menge von, wie, aber nicht viel, warum. Warum ändern, was aussieht wie ein Zeichensatz, der einen Unterschied machen, nur auf windows? Ich bin neugierig, wird alle.
InformationsquelleAutor Kevin P
Hatte das gleiche Problem
OS - Windows 8
Fehler- 'ExecJS::Absturz Mit Laufzeitfehler...'
Lösung - fehlt Node.js
InformationsquelleAutor snassr
Ich hatte dieses problem und war scowering im internet bin ich unter Windows 8 mit diesem Schienen-gem-Datei
Ging http://nodejs.org/download/ installiert - neu gestartet den Rechner und alles funktionierte.
InformationsquelleAutor gustavoanalytics
Ich eher die Lernen route. Es scheint, das problem ergibt sich aus
Rückgabe ein leerer string in
execjs\external_runtine.rb
(Zeile 173 in der version 1.4.0). Dies ist der Grund, warum die Fehlermeldung enthält keinen text. Die vorgeschlagenen änderungen nicht für mich arbeiten. Ich änderteUTF-16LE
zuUTF-8
, aber es immer noch eine leere Zeichenfolge zurückgegeben. Ich entfernte\\U
von dercommand
- zumindest zurückgegebenen text, aber es lag an der falschen Kodierung im browser angezeigt, wie chinesische Schriftzeichen.Laut in diesem MSDN-blog-Beitrag, mit der
//U
Flagge und Umleitung zu einer Datei bewirkt, dasscscript
zurück und das Ergebnis mitUTF-16
.Dann, magisch an, es funktionierte (@#%$&^@$%!!!?!?!) mit
command
als"cscript //E:jscript //Nologo"
undencoding
als"UTF-8"
. Naja.InformationsquelleAutor cofiem
Hatte ich meine nodejs-Ordner auf meinem Windows-Path-Umgebungsvariable. In Windows 8 öffnen Sie die Systemsteuerung, gehen Sie auf System, Erweiterte Systemeinstellungen (Links), klicken Sie auf Environment-Variablen auf der linken Seite, und Bearbeiten Sie die Path-variable enthalten das Verzeichnis nodejs-Ordner (wahrscheinlich in Programm-Dateien).
Natürlich, Sie haben Node.js installiert (verwenden Sie die Windows installer) und CoffeeScript installiert über NPM.
InformationsquelleAutor Evan
Ich weiß, das ist eine sehr späte Antwort für dieses Problem, aber ich habe an etwas ähnliches, und ging hinunter, den vollständigen Pfad zu verstehen, was wirklich das Problem verursacht.
Stellte sich heraus, dass die Standard-windows-jscript-engine ist immer noch auf es3, und viele Edelsteine nutzen es5 oder es6-features.
Leider, wenn dies geschieht (Sie sind mit einem Edelstein oder ein Stück code, das nutzen es5 oder es6-Funktionen), es gibt keine Möglichkeit zu lassen, es funktioniert auf windows mit der native js-engine.
Dies ist der Grund, warum der Installation node.js löst das problem der (Knoten ist mindestens es5).
Hoffe, dies kann helfen, einige Leute, die kämpfen mit einem runtime error der jsexec.
My 2 cents Beratung ist der Knoten installieren(sehr einfach) oder v8 installieren, und nicht das entfernen der //=require_tree.
Hinweis execjs automatisch Knoten, wenn erkannt. Sonst die Kraft, die seine Nutzung, indem in boot etwas wie:
Setzen der env zu Knoten.
InformationsquelleAutor Dinuz
Für Benutzer von windows, kann dies funktionieren. Es gibt ein problem mit coffee-script-source - >1.9.0 auf windows läuft.
Es scheint, Sie haben, fügen Sie diese zu Ihrem gemfile:
gem 'coffee-script-source', '1.8.0'
dann tun
bundle-update coffee-script-source -
Ich habe versucht, alle oben genannten Optionen, und auch mixed-up ein paar-Kombinationen von Ihnen, bis ich fand diese Schienen-4, ExecJS::ProgramError in Seiten#willkommen und hatten schon mehrere system gem updates und Bundles installiert und updates.
Ich zurückgesetzt, alle meine Prüfungen und herabgestuft my coffee-script-source und es funktioniert. Posting hier zu helfen, ist jemand, der vielleicht ein ähnliches Problem.
Aktualisieren von Dateien in vendor/cache
coffee-script-source-1.8.0.Edelstein Entfernen überholt .gem-Dateien von vendor/cache
coffee-script-source-1.9.1.1.Edelstein-Bundle aktualisiert!
InformationsquelleAutor DJSampat
Für Anfänger wie mich:
Ändern Sie Zeile 6 von:
'<%= javascript_include_tag 'Anwendung', 'Daten-turbolinks-Titel' => true, %>'
zu
Quelle tutorial zu fix hier
<%= stylesheet_link_tag 'defaults', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'defaults', 'data-turbolinks-track': 'reload' %>
danke Leandro P.Bitte tun Sie das nicht. Es wird nur entfernen Sie alle Javascript in Ihrem Rails-app. Dies birgt das Problem wird aber dazu führen, andere später.
Ja, wie @mattangriffel sagt, Tue das nicht.
InformationsquelleAutor Leandro P.
Quick-and-dirty-Lösung: entfernen Sie
//= require_tree .
ausapplication.js
.Wie erkläre ich in den Kommentaren für die Frage nicht wirklich lösen das zugrunde liegende Problem, das den Fehler verursacht, sondern lediglich umgeht.
Ich habe auch installiert Node.js und der Weg des npm liegt in Umgebungsvariablen. Immer noch die gleiche Fehlermeldung. Ich entwickle die Anwendung in Windows 8.1 64bit-OS und gleiche Edelsteine verwendet werden.
InformationsquelleAutor Colin R
Benutzte ich die Lösung Nummer 2, weil vorher hatte ich diese Fehler, aber in diese Lage hat nicht funktioniert, dann habe ich den
gem 'coffee-script-source', '1.8.0'
und führen
und mein problem war behoben
InformationsquelleAutor Yuliem Alavez
Hier ist eine weniger komplizierte Lösung für Anfänger:
Wenn Sie gerade durch die Anleitung, Sie arbeiten wahrscheinlich mit der default-Gemfile (oder fast ganz). Sie können öffnen Sie es in Ihrem text-editor, und entfernen Sie das Pfund-Zeichen von der Vorderseite dieses line:
Müssen Sie re-run
bundle install
, die wahrscheinlich laden Sie ein paar Dinge. Aber sobald Sie es tut, Sie sollten in der Lage sein, den server zu starten, ohne jedes problem.Zumindest für mich gearbeitet.
Dies funktioniert auch auf Ubuntu 12.04, durch die Art und Weise.
InformationsquelleAutor Karl Giesing
Läuft Win 8 64 bit
4.2.5 Schienen
ruby 2.1.7
Diese funktionierte für mich
InformationsquelleAutor Sumit Kumar
Hast du den Speicherort ändern des Codes von C:\Users\this-user\yo-app?
Als ich jung war in rails habe ich eine app geschaffen und der Standard-Speicherort meiner app war C:\Users\Duncan\my-app und dann, wenn ich änderte meine-app und platziert es in D:\All-my-Apps-folder ich hatte auch diesen Fehler....
Ich kratzte mich am Kopf, versuchte 1,2,3 und mehr .....nichts! Bis ich wieder alle code, um Standard-Ordner und zu meinem Erstaunen, war ich rollt wieder 🙂
Den Fall, dass jemand können das nützlich finden, (ich kann nicht erklären, warum das passiert ist, vielleicht kann jemand ohne Spekulation)
InformationsquelleAutor dancun chiriga