MISE À JOUR: suggestion de Colin de supprimer la ligne // = require_tree. a résolu le problème.
J'ai perdu plus de 2 jours à essayer de suivre toutes les suggestions et de résoudre mon problème. J'essaie de suivre le livre http://ruby.railstutorial.org sur la machine Windows et je ne peux pas pour la vie de moi dépasser l'erreur désagréable suivante.
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
J'ai essayé toutes les suggestions, y compris l'installation de nodejs avec le msi, l'utilisation d'execjs 1.3.0 et d'autres choses dont je ne me souviens même plus. Voici le fichier gem
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''
et voici les sessions.js.coffee
# 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
application.html.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>
Voici le contenu de la console
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)
J'ai installé Devkit et j'ai essayé divers joyaux, mais veuillez suggérer des changements qui peuvent m'aider à développer sur Windows. J'ai utilisé rubyinstaller pour tout.
Qu'est-ce que je rate?
la source
//= require_tree .
deapplication.js
voir si les erreurs persiste?.js.coffee
fichierapp/assets/javascripts
en JavaScript, puis l'ajoute à votre mise en page (mais uniquement en mode développement; en mode production, le js compilé est ajouté à votreapplication.js
fichier). Celarequire_tree .
ne devrait pas causer d'erreurs, vous avez donc un problème avec l'un des fichiers inclus. Pouvez-vous publier une liste de tous les fichiers de votreapp/assets/javascripts
répertoire? En outre, vous pouvez essayer de supprimer complètement le contenusessions.js.coffee
et de le rajouter//= require_tree .
et voir si l'erreur persiste.Réponses:
Mon ami tentait un didacticiel Rails sur Win 8 RTM il y a quelques mois et a rencontré cette erreur. Je ne sais pas si ce problème existe également dans Windows 7, mais cela peut aider.
Options:
1) Supprimer
//= require_tree .
/ ignorer le problème - Comme ColinR l'a indiqué ci-dessus, cette ligne ne devrait pas causer de problème en premier lieu. Il y a un problème réel avec ExecJS fonctionnant correctement avec le runtime JavaScript sur votre système et la suppression de cette ligne ignore tout simplement ce fait.2) Installer Node.js / S'enfuir - Beaucoup de gens semblent finir par installer Node.js et l'utiliser au lieu du runtime JavaScript déjà sur leur système. Bien que ce soit une option valide, elle nécessite également un logiciel supplémentaire et évite uniquement le problème d'origine, à savoir qu'ExecJS ne fonctionne pas correctement avec le moteur d'exécution JavaScript déjà sur votre système. Si le runtime JavaScript existant sur votre système est censé fonctionner, pourquoi ne pas le faire fonctionner au lieu d'installer plus de logiciels? Selon le créateur d'ExecJS, le runtime déjà intégré à Windows est en fait pris en charge ...
3) Résoudre réellement le problème / Apprentissage - Utilisez les connaissances des options 1 et 2 pour rechercher d'autres solutions. Je ne peux pas vous dire combien de pages Web j'ai fermées en voyant les options 1 ou 2 était la solution acceptée avant de trouver des informations sur le problème racine que nous avions. La seule raison pour laquelle nous avons continué à chercher était que nous ne pouvions pas croire que l'équipe Rails (1) insérerait une ligne de code dans chaque projet généré par l'échafaudage qui causait un problème, ou (2) exigerait que nous installions un logiciel supplémentaire juste pour exécuter cette valeur par défaut. ligne de code. Nous avons donc finalement trouvé une solution à notre problème racine (vos miles peuvent varier).
Le correctif qui a fonctionné pour nous: sur le système ayant des problèmes, recherchez le fichier runtimes.rb d'ExecJS . Ça ressemble à ça . Faites une copie du fichier trouvé pour la sauvegarde. Ouvrez le runtimes.rb d'origine pour le modifier. Trouvez la section qui commence par la ligne
JScript = ExternalRuntime.new(
. Dans cette section, sur la ligne contenant:command => "cscript //E:jscript //Nologo //U",
- supprimez le//U
seul. Puis sur la ligne contenant:encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE
- changez UTF-16LE enUTF-8
. Enregistrez les modifications apportées au fichier. Cette section du fichier devrait maintenant lire:Ensuite, arrêtez puis redémarrez votre serveur Rails et actualisez la page de votre navigateur qui a produit l'erreur d'origine. Espérons que la page se charge maintenant sans erreur. Voici le fil de discussion ExecJS sur lequel nous avons initialement publié nos résultats: https://github.com/sstephenson/execjs/issues/81#issuecomment-9892952
Si cela ne résout pas le problème, vous pouvez toujours écraser le runtimes.rb modifié par la copie de sauvegarde que vous avez (espérons-le) faite et tout sera de retour à la case départ. Dans ce cas, considérez l'option 3 et continuez à chercher. Dites-nous ce qui fonctionne finalement pour vous .. à moins que ce ne soit la suppression de require_tree ou l'installation de node.js, il y en a déjà beaucoup. :)
la source
UTF-16LE
àUTF-16
l'//U
option sans supprimer . Je l'ai confirmé.Eu le même problème OS - Erreur Windows 8 - 'ExecJS :: RuntimeError ...' Solution - Node.js manquant
la source
J'ai eu ce problème et je réduisais Internet J'utilise Windows 8 avec ce fichier de gemmes de rails
Je suis allé à http://nodejs.org/download/ installé - redémarré la machine et tout a fonctionné.
la source
J'ai privilégié la route d' apprentissage . Il semble que le problème vienne de
renvoyer une chaîne vide dans
execjs\external_runtine.rb
(ligne 173 de la version 1.4.0). C'est pourquoi le message d'erreur ne contient aucun texte. Les changements suggérés n'ont pas fonctionné pour moi. J'ai changéUTF-16LE
enUTF-8
, mais il a quand même renvoyé une chaîne vide. J'ai supprimé\\U
ducommand
- cela a au moins renvoyé du texte, mais il était dans le mauvais encodage - dans le navigateur, il s'affichait en caractères chinois.Selon ce billet de blog MSDN , l'utilisation de l'
//U
indicateur et la redirection vers un fichier provoquentcscript
le renvoi du résultat en utilisantUTF-16
.Et puis, comme par magie, cela a fonctionné ( @ #% $ & ^ @ $% !!!?!?!) En utilisant
command
comme"cscript //E:jscript //Nologo"
etencoding
comme"UTF-8"
. Tant pis.la source
J'ai dû ajouter mon dossier nodejs à ma variable d'environnement Windows Path. Dans Windows 8, ouvrez le Panneau de configuration, accédez à Système, Paramètres système avancés (sur la gauche), cliquez sur Variables d'environnement sur la gauche et modifiez la variable Path pour inclure le répertoire dans votre dossier nodejs (probablement dans Program Files).
Bien sûr, vous devez avoir Node.js installé (utilisez le programme d' installation de Windows ) et avoir installé CoffeeScript via NPM.
la source
Je sais que c'est une réponse très tardive à ce problème, mais je suis arrivé à quelque chose de similaire et j'ai parcouru le chemin complet pour comprendre ce qui causait vraiment le problème.
Il s'est avéré que le moteur Windows jscript par défaut est toujours sur es3, et de nombreux joyaux tirent parti des fonctionnalités es5 ou es6. Malheureusement, si cela se produit (vous utilisez une gemme ou un morceau de code qui exploitent les fonctionnalités es5 ou es6), il n'y a aucun moyen de le laisser fonctionner sur Windows avec le moteur natif js.
C'est la raison pour laquelle l'installation de node.js résout le problème (node est au moins es5).
J'espère que cela peut aider certaines personnes aux prises avec une erreur d'exécution de jsexec.
Mon conseil de 2 cents est d'installer node (très facile) ou d'installer v8, et non de supprimer // = require_tree.
Remarque execjs utilisera automatiquement le nœud s'il est détecté. Sinon, forcez son utilisation, en ajoutant au démarrage quelque chose comme:
Pour définir l'environnement sur node.
la source
Pour les utilisateurs de Windows, cela peut fonctionner. Il y a un problème avec coffee-script-source> 1.9.0 fonctionnant sous Windows.
Il semble que vous deviez ajouter ceci à votre gemfile:
gem 'coffee-script-source', '1.8.0'
alors fais
mise à jour du bundle coffee-script-source
J'ai essayé toutes les options ci-dessus, et j'ai également mélangé quelques combinaisons d'entre elles, jusqu'à ce que je trouve ce Rails-4, ExecJS :: ProgramError dans Pages # bienvenue et que j'aie effectué plusieurs mises à jour de gemmes système et des installations et mises à jour groupées .
J'ai annulé tous mes essais et rétrogradé mon coffee-script-source et cela fonctionne. Publier ici pour aider toute autre personne susceptible d'avoir un problème similaire.
Mise à jour des fichiers dans le fournisseur / cache
coffee-script-source-1.8.0.gem Suppression des fichiers .gem obsolètes du vendeur / cache coffee-script-source-1.9.1.1.gem Bundle mis à jour!
la source
Pour les débutants comme moi:
Changer la ligne 6 de:
'<% = javascript_include_tag' application ',' data-turbolinks-track '=> true%>'
à
Source du tutoriel à corriger ici
la source
<%= stylesheet_link_tag 'defaults', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'defaults', 'data-turbolinks-track': 'reload' %>
merci Leandro P.Solution rapide et sale: retirer
//= require_tree .
deapplication.js
.Comme je l'explique dans les commentaires de la question, cela ne résout pas réellement le problème sous-jacent à l'origine de l'erreur, mais l'évite simplement.
la source
J'ai utilisé la solution numéro 2 parce qu'avant j'avais eu cette erreur, mais dans cet emplacement ne fonctionnait pas, alors j'ai ajouté le
gem 'coffee-script-source', '1.8.0'
et courir
et mon problème a été résolu
la source
Voici une solution moins compliquée, pour les débutants:
Si vous ne faites que suivre le didacticiel, vous travaillez probablement avec le Gemfile par défaut (ou presque). Vous pouvez l'ouvrir dans votre éditeur de texte et supprimer le signe dièse au début de cette ligne:
Vous devrez réexécuter
bundle install
, ce qui téléchargera probablement quelques éléments. Mais une fois que c'est le cas, vous devriez pouvoir démarrer le serveur sans aucun problème.Au moins, cela a fonctionné pour moi.
Cela fonctionne également sur Ubuntu 12.04, d'ailleurs.
la source
Exécution de rails Win 8 64 bits 4.2.5 ruby 2.1.7
Celui-ci a fonctionné pour moi
la source
Avez-vous changé l'emplacement de votre code de C: \ Users \ this-user \ yo-app ?
Quand j'étais jeune dans les rails, j'ai créé une application et l'emplacement par défaut de mon application était C: \ Users \ Duncan \ my-app , puis, lorsque j'ai changé mon-application et l'ai placée dans D: \ All-my-Apps -dossier j'ai eu cette erreur ....
Je me suis gratté la tête, j'ai essayé 1,2,3 et plus ..... rien! Jusqu'à ce que je retourne tout le code à l'emplacement du dossier par défaut et à ma grande surprise, je roulais à nouveau :)
Au cas où quelqu'un trouverait cela utile (je ne peux pas expliquer pourquoi cela s'est produit, peut-être que quelqu'un le pourrait sans spéculation)
la source