UPDATE: Saran Colin untuk menghapus baris // = require_tree. telah memperbaiki masalah tersebut.
Saya telah menyia-nyiakan lebih dari 2 hari untuk mencoba mengikuti setiap saran di luar sana dan memperbaiki masalah saya. Saya mencoba untuk mengikuti buku http://ruby.railstutorial.org di mesin windows dan tidak bisa seumur hidup saya bisa melewati kesalahan jahat berikut.
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
Saya telah mencoba setiap saran termasuk menginstal nodejs dengan msi, menggunakan execjs 1.3.0 dan hal-hal lain yang bahkan tidak dapat saya ingat lagi. Ini file gemnya
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''
dan inilah session.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>
Berikut adalah konten konsol
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)
Saya telah menginstal Devkit dan telah mencoba berbagai permata tetapi mohon sarankan perubahan yang dapat membantu saya berkembang di windows. Saya menggunakan rubyinstaller untuk semuanya.
Apa yang saya lewatkan?
sumber
//= require_tree .
dariapplication.js
dan melihat apakah kesalahan masih terjadi?.js.coffee
fileapp/assets/javascripts
ke dalam JavaScript dan kemudian menambahkannya ke layout Anda (tetapi hanya dalam mode pengembangan; dalam mode produksi, js yang dikompilasi ditambahkan keapplication.js
file Anda ). Memilikirequire_tree .
seharusnya tidak menyebabkan kesalahan, jadi entah bagaimana Anda memiliki masalah dengan salah satu file yang disertakan. Dapatkah Anda memposting daftar semua file diapp/assets/javascripts
direktori Anda ? Selain itu, Anda dapat mencoba sepenuhnya menghapus kontensessions.js.coffee
dan menambahkan kembali//= require_tree .
dan melihat apakah kesalahan masih ada.Jawaban:
Teman saya mencoba tutorial Rails di Win 8 RTM beberapa bulan yang lalu dan mengalami kesalahan ini. Tidak yakin apakah masalah ini juga ada di Windows 7, tetapi ini dapat membantu.
Pilihan:
1) Menghapus
//= require_tree .
/ Mengabaikan masalah - Seperti yang dinyatakan ColinR di atas, baris ini seharusnya tidak menyebabkan masalah sejak awal. Sebenarnya ada masalah dengan ExecJS yang bekerja dengan baik dengan runtime JavaScript di sistem Anda dan menghapus baris ini hanya mengabaikan fakta tersebut.2) Menginstal Node.js / Melarikan diri - Banyak orang tampaknya baru saja menginstal Node.js dan menggunakannya sebagai ganti JavaScript runtime yang sudah ada di sistem mereka. Meskipun itu adalah opsi yang valid, ini juga membutuhkan perangkat lunak tambahan dan hanya menghindari masalah asli, yaitu ExecJS tidak berfungsi dengan baik dengan runtime JavaScript yang sudah ada di sistem Anda. Jika runtime JavaScript yang ada di sistem Anda seharusnya berfungsi, mengapa tidak membuatnya berfungsi daripada menginstal lebih banyak perangkat lunak? Menurut pencipta ExecJS, runtime yang sudah dibangun ke dalam Windows sebenarnya didukung ...
3) Sebenarnya memperbaiki masalah / Pembelajaran - Gunakan pengetahuan tentang opsi 1 dan 2 untuk mencari solusi lain. Saya tidak dapat memberi tahu Anda berapa banyak halaman web yang saya tutup setelah melihat opsi 1 atau 2 adalah solusi yang diterima sebelum benar-benar menemukan informasi tentang masalah akar yang kami alami. Satu-satunya alasan kami terus mencari adalah karena kami tidak percaya tim Rails akan (1) memasukkan sebaris kode di setiap proyek yang dihasilkan scaffold yang menyebabkan masalah, atau (2) mengharuskan kami menginstal perangkat lunak tambahan hanya untuk menjalankan default itu baris kode. Jadi kami akhirnya sampai pada perbaikan untuk masalah root kami (mil Anda mungkin berbeda).
Perbaikan yang berhasil untuk kami: Pada sistem yang mengalami masalah, temukan file runtimes.rb ExecJS . Ini terlihat seperti ini . Buat salinan file yang ditemukan untuk cadangan. Buka runtimes.rb asli untuk mengedit. Temukan bagian yang dimulai dengan garis
JScript = ExternalRuntime.new(
. Di bagian itu, pada baris yang berisi:command => "cscript //E:jscript //Nologo //U",
- hapus//U
satu - satunya. Kemudian pada baris yang berisi:encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE
- ubah UTF-16LE menjadiUTF-8
. Simpan perubahan ke file. Bagian file ini sekarang harus membaca:Selanjutnya, berhenti lalu restart server Rails Anda dan segarkan halaman di browser Anda yang menghasilkan kesalahan asli. Semoga halaman dimuat tanpa kesalahan sekarang. Berikut utas masalah ExecJS tempat kami awalnya memposting hasil kami: https://github.com/sstephenson/execjs/issues/81#issuecomment-9892952
Jika ini tidak memperbaiki masalah, Anda selalu dapat menimpa runtimes.rb yang dimodifikasi dengan salinan cadangan yang Anda (mudah-mudahan) buat dan semuanya akan kembali ke titik awal. Dalam hal ini, pertimbangkan opsi 3 dan terus mencari. Beri tahu kami apa yang pada akhirnya berhasil untuk Anda .. kecuali jika itu menghapus require_tree atau menginstal node.js, itu sudah banyak yang terjadi. :)
sumber
UTF-16LE
keUTF-16
tanpa me-removig//U
opsi tersebut. Saya sudah konfirmasi.Memiliki masalah yang sama OS- Windows 8 Error- 'ExecJS :: RuntimeError ...' Solution- Node.js hilang
sumber
Saya memiliki masalah ini dan sedang memperlambat internet. Saya menjalankan Windows 8 dengan file permata rel ini
Pergi ke http://nodejs.org/download/ diinstal - restart mesin dan semuanya bekerja.
sumber
Saya menyukai rute Pembelajaran . Sepertinya masalahnya berasal dari
mengembalikan string kosong di
execjs\external_runtine.rb
(baris 173 di versi 1.4.0). Inilah mengapa pesan kesalahan tidak berisi teks. Perubahan yang disarankan tidak berhasil untuk saya. Saya berubahUTF-16LE
menjadiUTF-8
, tetapi masih mengembalikan string kosong. Saya menghapus\\U
daricommand
- setidaknya ini teks yang dikembalikan, tetapi dalam pengkodean yang salah - di browser itu ditampilkan sebagai karakter Cina.Menurut posting blog MSDN ini , menggunakan
//U
bendera dan mengarahkan ke file menyebabkancscript
mengembalikan hasil menggunakanUTF-16
.Dan kemudian, secara ajaib, ini berhasil ( @ #% $ & ^ @ $% !!!?!?!) Menggunakan
command
as"cscript //E:jscript //Nologo"
danencoding
sebagai"UTF-8"
. Baiklah.sumber
Saya harus menambahkan folder nodejs saya ke variabel lingkungan Windows Path saya. Di Windows 8 buka Control Panel, masuk ke System, Advanced system settings (di sebelah kiri), klik Variabel Lingkungan di sebelah kiri, dan edit variabel Path untuk memasukkan direktori ke folder nodejs Anda (mungkin di Program Files).
Tentu saja Anda harus menginstal Node.js (menggunakan penginstal Windows ) dan telah menginstal CoffeeScript melalui NPM.
sumber
Saya tahu ini adalah jawaban yang sangat terlambat untuk masalah ini, tetapi saya mendapatkan sesuatu yang serupa dan berusaha sepenuhnya untuk memahami apa yang sebenarnya menyebabkan masalah tersebut.
Ternyata mesin jscript windows default masih di es3, dan banyak permata yang memanfaatkan fitur es5 atau es6. Sayangnya jika ini terjadi (Anda menggunakan permata atau potongan kode yang memanfaatkan fitur es5 atau es6), tidak ada cara untuk membiarkannya berfungsi di windows dengan mesin js asli.
Inilah alasan mengapa menginstal node.js memecahkan masalah (node setidaknya es5).
Semoga ini dapat membantu beberapa orang yang berjuang dengan kesalahan runtime jsexec.
Saran 2 sen saya adalah menginstal node (sangat mudah) atau menginstal v8, dan tidak menghapus // = require_tree.
Catatan execjs akan secara otomatis menggunakan node jika terdeteksi. Jika tidak memaksa penggunaannya, menambahkan boot sesuatu seperti:
Untuk menyetel env ke node.
sumber
Untuk pengguna windows, ini mungkin berhasil. Ada masalah dengan coffee-script-source> 1.9.0 yang berjalan di windows.
Sepertinya Anda harus menambahkan ini ke gemfile Anda:
permata 'kopi-script-source', '1.8.0'
lalu lakukan
bundel memperbarui sumber skrip kopi
Saya mencoba semua opsi di atas, dan juga mencampur beberapa kombinasinya, sampai saya menemukan Rails-4 ini, ExecJS :: ProgramError di Halaman # selamat datang dan telah melakukan beberapa pembaruan permata sistem dan pemasangan bundel dan pembaruan.
Saya mengembalikan semua percobaan saya dan menurunkan versi sumber skrip kopi saya dan berhasil. Posting di sini untuk membantu orang lain, yang mungkin memiliki masalah serupa.
Memperbarui file di vendor / cache
coffee-script-source-1.8.0.gem Menghapus file .gem yang kedaluwarsa dari vendor / cache coffee-script-source-1.9.1.1.gem Bundel telah diperbarui!
sumber
Untuk pemula seperti saya:
Ubah baris 6 dari:
'<% = javascript_include_tag' application ',' data-turbolinks-track '=> true%>'
untuk
Sumber dari tutorial untuk diperbaiki di sini
sumber
<%= stylesheet_link_tag 'defaults', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'defaults', 'data-turbolinks-track': 'reload' %>
terima kasih Leandro P.Solusi cepat dan kotor: keluarkan
//= require_tree .
dariapplication.js
.Seperti yang saya jelaskan di komentar untuk pertanyaan, ini tidak benar-benar menyelesaikan masalah mendasar yang menyebabkan kesalahan, tetapi hanya mengabaikannya.
sumber
Saya menggunakan solusi nomor 2 karena sebelumnya saya mengalami kesalahan ini, tetapi dalam hal ini tidak berhasil, kemudian saya menambahkan
gem 'coffee-script-source', '1.8.0'
dan lari
dan masalah saya teratasi
sumber
Berikut solusi yang tidak terlalu rumit, untuk pemula:
Jika Anda baru saja mengerjakan tutorial, Anda mungkin bekerja dengan Gemfile default (atau hampir). Anda dapat membukanya di editor teks Anda, dan menghapus tanda pagar dari depan baris ini:
Anda perlu menjalankan ulang
bundle install
, yang kemungkinan akan mengunduh beberapa hal. Tapi begitu itu terjadi, Anda seharusnya bisa memulai server tanpa masalah.Setidaknya, itu berhasil untuk saya.
Ini juga berfungsi di Ubuntu 12.04.
sumber
Menjalankan Win 8 64 bit rails 4.2.5 ruby 2.1.7
Yang ini berhasil untuk saya
sumber
Apakah Anda mengubah lokasi kode Anda dari C: \ Users \ this-user \ yo-app ?
Ketika saya masih muda di rel, saya telah membuat aplikasi dan lokasi default aplikasi saya adalah C: \ Users \ Duncan \ my-app dan kemudian, ketika saya mengubah aplikasi saya dan meletakkannya di D: \ All-my-Apps -folder saya mengalami kesalahan itu ....
Aku menggaruk kepalaku, mencoba 1,2,3 dan lebih ..... tidak ada! Sampai saya mengembalikan semua kode ke lokasi folder default dan saya takjub, saya bergulir lagi :)
Jika seseorang mungkin menganggap ini berguna (saya tidak bisa menjelaskan mengapa itu terjadi, mungkin seseorang mungkin tanpa spekulasi)
sumber