Rails ExecJS :: ProgramError in Pages # home?

68

Beim Starten einer neuen App wird beim Erstellen einer Controller-Startseite und beim Versuch, zum lokalen Host zu wechseln: 3000 / pages / home, die folgende Fehlermeldung angezeigt:

Showing c:/Users/Doesha/desktop/pinplug/app/views/layouts/application.html.erb where line #6 raised:

TypeError: Object doesn't support this property or method
  (in c:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)

application.html.erb Datei:

<!DOCTYPE html>
<html>
<head>
  <title>Pinplug</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

Datei application_controller.rb:

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
end

page_controller.rb Datei:

class PagesController < ApplicationController
  def home
  end
end

route.rb Datei:

Rails.application.routes.draw do
  get 'pages/home'

  # The priority is based upon order of creation: first created -> highest priority.
  # See how all your routes lay out with "rake routes".

  # You can have the root of your site routed with "root"
  # root 'welcome#index'

  # Example of regular route:
  #   get 'products/:id' => 'catalog#view'

  # Example of named route that can be invoked with purchase_url(id: product.id)
  #   get 'products/:id/purchase' => 'catalog#purchase', as: :purchase

  # Example resource route (maps HTTP verbs to controller actions automatically):
  #   resources :products

  # Example resource route with options:
  #   resources :products do
  #     member do
  #       get 'short'
  #       post 'toggle'
  #     end
  #
  #     collection do
  #       get 'sold'
  #     end
  #   end

  # Example resource route with sub-resources:
  #   resources :products do
  #     resources :comments, :sales
  #     resource :seller
  #   end

  # Example resource route with more complex sub-resources:
  #   resources :products do
  #     resources :comments
  #     resources :sales do
  #       get 'recent', on: :collection
  #     end
  #   end

  # Example resource route with concerns:
  #   concern :toggleable do
  #     post 'toggle'
  #   end
  #   resources :posts, concerns: :toggleable
  #   resources :photos, concerns: :toggleable

  # Example resource route within a namespace:
  #   namespace :admin do
  #     # Directs /admin/products/* to Admin::ProductsController
  #     # (app/controllers/admin/products_controller.rb)
  #     resources :products
  #   end
end

gemfile:

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

gem 'execjs', '~> 2.2.2'

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc

# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug'

  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

gemfile.lock Datei:

GEM
  remote: https://rubygems.org/
  specs:
    actionmailer (4.2.0)
      actionpack (= 4.2.0)
      actionview (= 4.2.0)
      activejob (= 4.2.0)
      mail (~> 2.5, >= 2.5.4)
      rails-dom-testing (~> 1.0, >= 1.0.5)
    actionpack (4.2.0)
      actionview (= 4.2.0)
      activesupport (= 4.2.0)
      rack (~> 1.6.0)
      rack-test (~> 0.6.2)
      rails-dom-testing (~> 1.0, >= 1.0.5)
      rails-html-sanitizer (~> 1.0, >= 1.0.1)
    actionview (4.2.0)
      activesupport (= 4.2.0)
      builder (~> 3.1)
      erubis (~> 2.7.0)
      rails-dom-testing (~> 1.0, >= 1.0.5)
      rails-html-sanitizer (~> 1.0, >= 1.0.1)
    activejob (4.2.0)
      activesupport (= 4.2.0)
      globalid (>= 0.3.0)
    activemodel (4.2.0)
      activesupport (= 4.2.0)
      builder (~> 3.1)
    activerecord (4.2.0)
      activemodel (= 4.2.0)
      activesupport (= 4.2.0)
      arel (~> 6.0)
    activesupport (4.2.0)
      i18n (~> 0.7)
      json (~> 1.7, >= 1.7.7)
      minitest (~> 5.1)
      thread_safe (~> 0.3, >= 0.3.4)
      tzinfo (~> 1.1)
    arel (6.0.0)
    binding_of_caller (0.7.2)
      debug_inspector (>= 0.0.1)
    builder (3.2.2)
    byebug (3.5.1)
      columnize (~> 0.8)
      debugger-linecache (~> 1.2)
      slop (~> 3.6)
    coffee-rails (4.1.0)
      coffee-script (>= 2.2.0)
      railties (>= 4.0.0, < 5.0)
    coffee-script (2.3.0)
      coffee-script-source
      execjs
    coffee-script-source (1.9.0)
    columnize (0.9.0)
    debug_inspector (0.0.2)
    debugger-linecache (1.2.0)
    erubis (2.7.0)
    execjs (2.2.2)
    globalid (0.3.2)
      activesupport (>= 4.1.0)
    hike (1.2.3)
    i18n (0.7.0)
    jbuilder (2.2.6)
      activesupport (>= 3.0.0, < 5)
      multi_json (~> 1.2)
    jquery-rails (4.0.3)
      rails-dom-testing (~> 1.0)
      railties (>= 4.2.0)
      thor (>= 0.14, < 2.0)
    json (1.8.2)
    loofah (2.0.1)
      nokogiri (>= 1.5.9)
    mail (2.6.3)
      mime-types (>= 1.16, < 3)
    mime-types (2.4.3)
    mini_portile (0.6.2)
    minitest (5.5.1)
    multi_json (1.10.1)
    nokogiri (1.6.6.2-x86-mingw32)
      mini_portile (~> 0.6.0)
    rack (1.6.0)
    rack-test (0.6.3)
      rack (>= 1.0)
    rails (4.2.0)
      actionmailer (= 4.2.0)
      actionpack (= 4.2.0)
      actionview (= 4.2.0)
      activejob (= 4.2.0)
      activemodel (= 4.2.0)
      activerecord (= 4.2.0)
      activesupport (= 4.2.0)
      bundler (>= 1.3.0, < 2.0)
      railties (= 4.2.0)
      sprockets-rails
    rails-deprecated_sanitizer (1.0.3)
      activesupport (>= 4.2.0.alpha)
    rails-dom-testing (1.0.5)
      activesupport (>= 4.2.0.beta, < 5.0)
      nokogiri (~> 1.6.0)
      rails-deprecated_sanitizer (>= 1.0.1)
    rails-html-sanitizer (1.0.1)
      loofah (~> 2.0)
    railties (4.2.0)
      actionpack (= 4.2.0)
      activesupport (= 4.2.0)
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (10.4.2)
    rdoc (4.2.0)
      json (~> 1.4)
    sass (3.4.11)
    sass-rails (5.0.1)
      railties (>= 4.0.0, < 5.0)
      sass (~> 3.1)
      sprockets (>= 2.8, < 4.0)
      sprockets-rails (>= 2.0, < 4.0)
      tilt (~> 1.1)
    sdoc (0.4.1)
      json (~> 1.7, >= 1.7.7)
      rdoc (~> 4.0)
    slop (3.6.0)
    sprockets (2.12.3)
      hike (~> 1.2)
      multi_json (~> 1.0)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sprockets-rails (2.2.4)
      actionpack (>= 3.0)
      activesupport (>= 3.0)
      sprockets (>= 2.8, < 4.0)
    sqlite3 (1.3.10-x86-mingw32)
    thor (0.19.1)
    thread_safe (0.3.4)
    tilt (1.4.1)
    turbolinks (2.5.3)
      coffee-rails
    tzinfo (1.2.2)
      thread_safe (~> 0.1)
    tzinfo-data (1.2015.1)
      tzinfo (>= 1.0.0)
    uglifier (2.7.0)
      execjs (>= 0.3.0)
      json (>= 1.8.0)
    web-console (2.0.0)
      activemodel (~> 4.0)
      binding_of_caller (>= 0.7.2)
      railties (~> 4.0)
      sprockets-rails (>= 2.0, < 4.0)

PLATFORMS
  x86-mingw32

DEPENDENCIES
  byebug
  coffee-rails (~> 4.1.0)
  execjs (~> 2.2.2)
  jbuilder (~> 2.0)
  jquery-rails
  rails (= 4.2.0)
  sass-rails (~> 5.0)
  sdoc (~> 0.4.0)
  sqlite3
  turbolinks
  tzinfo-data
  uglifier (>= 1.3.0)
  web-console (~> 2.0)

application.rb Datei:

require File.expand_path('../boot', __FILE__)

require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module Pinplug
  class Application < Rails::Application
    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration should go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded.

    # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
    # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
    # config.time_zone = 'Central Time (US & Canada)'

    # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
    # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
    # config.i18n.default_locale = :de

    # Do not swallow errors in after_commit/after_rollback callbacks.
    config.active_record.raise_in_transactional_callbacks = true
  end
end

Ich habe auch den Turbolink-Edelstein von 2.3.0 auf 2.2.2 herabgestuft, weil ich dachte, dass die neuere Version des Turbolink-Edelsteins Fehler in meiner App verursacht hat. Offensichtlich hat das bei mir nicht funktioniert.

Irgendwelche Vorschläge, was mit meiner App schief gehen könnte?

AB10
quelle
Mögliches Duplikat von Rails-4, ExecJS :: ProgramError auf den Seiten # welcome
Michael Petch
In Rails 5 ist es immer noch ein Fehler
Arthur
Weitere Schritte wären erforderlich. Eine Person, die mit RoR besser vertraut ist, hat das Problem für mich behoben: Außerdem müssen Dateien wie folgt umbenannt werden: application.css.scss wird zu ./app/assets/stylesheets/default.css.scss und application.js -> ./app/assets/javascripts /default.js. Dann musste ich Node.js installieren. Schließlich bestand die letzte Änderung darin, die Zeile "Rails.application.config.assets.precompile + =% w (search.js)" mit "Rails.application.config.assets.precompile + =% w" (default.js Standard) zu ändern. css.scss) Bitte beachten Sie, dass die Zeile mit # kommentiert wurde, das entfernt werden muss. Happy RoRing unter Windows
Arthur

Antworten:

141

Ändern Sie in Ihren Zeilen /app/views/layouts/application.html.erb, Zeilen 5 und 6 , den ersten Parameter von applicationbis default.

Ich habe das gleiche Problem auch für meine Situation getroffen, ich weiß nicht warum, aber es passiert nur unter Windows. Der Parameter applicationfunktioniert auf dem Webserver.

FlyC
quelle
3
Danke @FlyC, das weiß ich zu schätzen!
AB10
58
coffee-script source> = 1.9.0funktioniert unter Windows nicht richtig. Sie können dies tun: gem 'coffee-script-source', '1.8.0'erzwingen 1.8.0und dann ausgebenbundle update coffee-script-source
Michael Petch
2
Danke @MichaelPetch, dein Kommentar hat bei mir funktioniert!
Armstrhb
10
Das Ändern von 'application' in 'default' löst das Problem nicht. Wenn Sie die Dev-Tools überprüfen, werden Sie feststellen, dass Assets aufgrund von 404 nicht enthalten sind. Ein Downgrade der Coffe-Script-Quelle ist die richtige Antwort.
E-Fisher
2
Ich stimme @ excel66 zu - Das ist richtig, ich kann nicht glauben, dass Leute das tatsächlich tun oder diese Antwort als positiv bewerten. Das ist wirklich nicht die Lösung, weil wir sagen, dass Sie eine CSS-Datei in diesem Ordner \ Assets \ Stylesheets haben, die es nicht wird Laden Sie es,
user4571629
59

Wenn Sie in Windows ausgeführt werden, funktioniert die Kaffee-Skript-Quelle 1.9.0 unter Windows nicht.

Ändern Sie es in eine frühere Version und fügen Sie diese Zeile zu Ihrer Gemfile hinzu:

gem 'coffee-script-source', '1.8.0'

Installieren Sie dann das Bundle neu und passen Sie die Abhängigkeiten für die neue Gem-Version an mit:

bundle update coffee-script-source
evedovelli
quelle
8
Starten Sie auch den Server neu (etwas offensichtlich, aber es hat mich bekommen).
Jeff
2
Diese Lösung funktioniert unter Windows 10. Stellen Sie sicher, dass Sie den Server neu starten, wie Jeff sagt.
illiquent
Hallo Herr, ich habe getan, was Sie gesagt haben. Es funktioniert immer noch nicht. Warum?
Engel
25

Ich habe dieses Problem schon eine Weile und nachdem ich alle Antworten in diesem Thread durchgesehen und festgestellt habe, dass sie alle nicht erfolgreich waren, habe ich beschlossen, meine Lösung in der Hoffnung hinzuzufügen, dass sie zukünftigen Rails-Benutzern hilft.

Ich habe alles in diesem Thread getan - das Ändern applicationauf, damit defaultes fehlerfrei durchlaufen kann, aber sobald Sie tatsächlich versuchen, JavaScript zu verwenden, wird ein Fehler angezeigt, der besagt, dass Sie nicht finden können default.js. Ich habe NodeJS installiert und in meinen Ruby / bin-Ordner gelegt. Das hat nichts gebracht, also habe ich es entfernt.

Sie können dieses Problem zwar vorübergehend mit der Lösung "Umschalten applicationmit default" umgehen, aber es ist extrem kurzfristig. Diese Lösung funktioniert möglicherweise für Sie, wenn Sie nicht beabsichtigen, JavaScript über die Rails-Asset-Pipeline zu gestalten oder Ihrer App hinzuzufügen. Ich habe dies nicht selbst getestet, aber ich stelle mir vor, dass das Einfügen von JavaScript und Stylesheets in die Header-Datei application.html möglicherweise funktioniert. Aber dann verlierst du die Magie von Rails.

Ich hatte dieses Problem auf Windows 8-, Windows 10- und Ubuntu-Plattformen.

Das einzige , was löst es, für mich, und immer noch die JavaScript und Stylesheets macht , ist zum ersten Wechsel applicationzu application.cssden Stylesheets (auch wenn Sie Sass / SCSS verwenden, weil es immer noch nach unten in CSS kompiliert) und application.jsfür den Link JavaScript. Sobald dies erledigt ist, gehen Sie in Ihre /assets/javascripts/application.jsDatei und löschen Sie die //vor //= require turbolinks.

Und jetzt sollte Ihre Anwendung gut funktionieren.

Dies ist wahrscheinlich ein tieferes Problem mit Turbolinks, aber dies ist eine schnelle Problemumgehung, die mich noch nicht enttäuscht hat.

MK McKenzie
quelle
1
Diese Lösung funktionierte für mich unter Windows 10 und ermöglichte Ruby, die anderen Stylesheets zu sehen, die ich in der "Pipeline" hatte. Ändern von 'Anwendung' in 'Standard' - bricht tatsächlich die Stylesheets. Vielleicht ist es nur ein Coffescript-Fehler in der Ursache - aber diese Lösung hat großartig funktioniert.
illiquent
1
Beeindruckend; Ich würde dir +150 geben, wenn ich könnte. ich danke dir sehr. Dies funktionierte auf Sieg 7 x 64
Sassy Llama
Ich hatte das gleiche Problem und das Ändern von "application" in "default" löste die Ausnahme aus, dass "application.css" nicht gefunden werden konnte. Aber diese Lösung hat bei mir funktioniert. Vielen Dank!
Chait
20

in Windows Coffee-Script-Quelle> = 1.9.0 funktioniert nicht richtig. Fügen Sie einfach Gemfile hinzu

 gem 'coffee-script-source', '1.8.0'

und Renn

bundle update coffee-script-source
Thorin
quelle
1
Ich danke dir sehr!
Uhr
1
DAS ist die LÖSUNG! Vielen Dank!
Angelo
1
Dies ist die Lösung, die ich in meinem Windows Server 2016 verwendet habe
Jeffrey M Castro
6

Installieren Sie einfach NodeJS auf Ihrem lokalen Computer (stellen Sie sicher, dass der entsprechende Eintrag zum PATH hinzugefügt wurde) und fügen Sie ihn hinzu

gem 'execjs'

in die Gemfile .

Ilya Bodrov-Krukowski
quelle
Ich hatte nicht bemerkt, dass NodeJS nicht auf meinem Computer installiert war. Ich habe dieses Video gefunden, das es im Grunde genauso löst wie youtube.com/watch?reload=9&v=l04kFL3pnEk und mit der Installation von NodeJS auf einem Windows-Computer spricht.
Forrest
5

Unter Windows 10, Version 1511, funktionierte das Hinzufügen des Gems 'Coffee-Script-Source', '1.8.0' zu meiner Gemfile und das anschließende Aktualisieren der Coffee-Script-Source aus dem Projektverzeichnis. NB: Die vorherige Version der Kaffee-Skript-Quelle, die ersetzt wurde, war 1.10.0

Paul Leach
quelle
5

(Unter Windows 8)

  1. Installieren Sie Node.js!
  2. Fügen Sie es dem PFAD hinzu (ENV_VAR)
  3. Starten Sie den Server neu
adhix11
quelle
2
Was lässt Sie denken, dass dies eine bessere Lösung ist als die vom Jahr akzeptierte Antwort?
TylerH
2
Ich denke, dies ist eine bessere Lösung, da das Ändern von "application" in "default" in /layouts/application.html.erb dazu führen kann, dass CSS- und JS-Dateien einen 404 auslösen. Für die Installation von Node.js müssen Sie keine Änderungen an Ihrem vornehmen Code, der entweder zu unerwünschten Ergebnissen führt (Skripte und Stylesheets werden nicht geladen) oder dazu führt, dass Sie beim Übergang zur Produktion umfassende Änderungen am Code vornehmen müssen.
Jonathan Harvey
1
Funktioniert auch unter Windows 10 . Getestet
Rafaf Tahsin
3

Ich hatte auch dieses Problem. Ich ging in Sublime in meinen Projektordner. Klicken Sie dann auf die App-Ordner, zeigen Sie den Ordner und das Layout an, klicken Sie auf application.html.erb und ändern Sie die Zeilen 5 und 6 'application' in 'default'. Hat super funktioniert. Vielen Dank für die Veröffentlichung Ihres Problems und vielen Dank an diejenigen, die geantwortet haben!

Ich wollte nur hinzufügen, dass ich durch Sublime gegangen bin. Ich lerne gerade und habe nicht verstanden, wie ich auf die .erb-Datei zugreifen soll. Ich wollte nur anderen helfen.

dmers
quelle
1

Ich habe gerade das ' application' in ' default' in den Zeilen 5 und 6 geändert und beschlossen. /app/views/layouts/application.html.erb.

VON:

<%= stylesheet_link_tag    '**application**', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag '**application**', 'data-turbolinks-track' => true %>

ZU:

<%= stylesheet_link_tag    '**default**', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag '**default**', 'data-turbolinks-track' => true %>
Carlos Amorim
quelle
1

Endlich hat es funktioniert, was für ein Seufzer der Erleichterung. Auch wenn ich nicht genau weiß, warum es funktioniert hat. Versuchte alle folgenden. 1) Installierte node.js, fügte coffescript npm hinzu und startete neu. 2) Gem für exec.js hinzugefügt und runtime.rb so geändert, dass keine Standard-Windows-Skriptdatei verwendet werden kann. Informationen hierzu finden Sie unter diesem Link: [ https://github.com/sstephenson/execjs/issues/81[1] 3) Um sicher zu gehen, fügen Sie auch Rubyracer Gem Gem 'Therubyracer' hinzu, Plattformen :: Ruby

Zusammenfassend wurden zwei Skript-Engines hinzugefügt, nodejs und rubyracer, und execjs hinzugefügt, damit die beste Scripting-Engine ausgewählt wird, die Windows-Scrpting-Engine jedoch nicht ausgewählt werden kann.

Ich denke, nur die Installation von NodeJS allein könnte nach dem Hinzufügen von Execjs funktioniert haben. Ich habe jedoch nicht neu gestartet (nach der Installation von nodejs) und alle anderen Dinge ausprobiert.

Rpant
quelle
1

Ich habe alle oben genannten Lösungen ausprobiert, und die einzige, die ordnungsgemäß funktioniert hat, bestand darin, node.js zu installieren, das Verzeichnis der Umgebungsvariablen 'path' in Windows hinzuzufügen (siehe Erweiterte Systemeinstellungen, Umgebungsvariablen, Pfad) und dann das neu zu starten Computer und Server. Ich denke, die späteren Versionen von Coffee-Script-Source müssen zusammen mit anderen Edelsteinen von node.js abhängig sein. Ich hatte den identischen Fehler ohne Kaffee-Skript-Quelle.

Das Ändern von "Anwendung" in "Standard" ist jedoch eine schreckliche Lösung, da nur das gesamte CSS-Design der Anwendung entfernt wird. Ich empfehle es überhaupt nicht.

Graeme Campbell
quelle
1
Das funktioniert für mich ... für meinen Fall ist der Knoten bereits installiert, aber er ist nicht in VARIABLE ENVIRONMENT PATH enthalten ... also füge ich ihn einfach der
Pfadvariablen hinzu
1

Ich bin auf Schienen 5.1.6. Ich hatte das gleiche Problem. Wie oben empfohlen, habe ich das Juwel aus der Kaffee-Skript-Quelle herabgesetzt, das das Problem gelöst hat.

# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2' # <-- This existed already
gem 'coffee-script-source', '1.8.0' # <-- Adding this line solved the problem

Hinweis: Ich habe die Datei application.html.rb nicht geändert

Kaz
quelle
0

wir sollten nur Linie 6 von ändern applicationzu defaultin /app/views/layouts/application.html.erb. Wenn Sie Zeile 5 ändern, werden die Stylesheets nicht geladen.

BENS
quelle
0

Sie müssen die Anweisungen auf der Schienenseite lesen. Sie benötigen ExecJS Gem und etwas JS-Laufzeit.

Praktischer: 1.- Installieren Sie einige Runtime JS, zum Beispiel node.js

2.- Holen Sie sich ExecJS gem-> gem install execjs

Erklärung:

Von der Schienenseite:

"Für das Kompilieren der Komprimierung von CoffeeScript- und JavaScript-Assets ist eine JavaScript-Laufzeit auf Ihrem System verfügbar. Wenn keine Laufzeit vorhanden ist, wird beim Kompilieren der Assets ein Ausführungsfehler angezeigt. In Mac OS X und Windows wird normalerweise eine JavaScript-Laufzeit installiert. Rails fügt die hinzu therubyracer gem zur generierten Gemfile in einer kommentierten Zeile für neue Apps und Sie können Kommentare abgeben, wenn Sie sie benötigen. therubyrhino ist die empfohlene Laufzeit für JRuby-Benutzer und wird standardmäßig zur Gemfile in Apps hinzugefügt, die unter JRuby generiert wurden. Sie können alle unterstützten untersuchen Laufzeiten bei ExecJS. "

Aus dem GitHub von ExecJS:

"Mit ExecJS können Sie JavaScript-Code von Ruby aus ausführen. Es wählt automatisch die beste verfügbare Laufzeit aus, um Ihr JavaScript-Programm auszuwerten, und gibt das Ergebnis dann als Ruby-Objekt an Sie zurück.

ExecJS unterstützt diese Laufzeiten:

therubyracer - Google V8 embedded within Ruby
therubyrhino - Mozilla Rhino embedded within JRuby
Duktape.rb - Duktape JavaScript interpreter
Node.js
Apple JavaScriptCore - Included with Mac OS X
Microsoft Windows Script Host (JScript)
Google V8
mini_racer - Google V8 embedded within Ruby" 

ExecJS Readme GitHub

Mauro
quelle
0

Sein Problem mit Turbolinks Edelstein, so dass es Fehler erzeugt

Ändern Sie dies in app \ views \ layouts \ application.html.erb

<%= stylesheet_link_tag    'application.css', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application.js', 'data-turbolinks-track': 'reload' %>

von

<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

und kommentieren Sie die Zeile Nr. 15 in app \ assets \ javascripts \ application.js aus

require turbolinks

und kopieren Sie es am Ende der Datei in app \ Assets \ Stylesheets \ application.css

Von hier aus werden Ihre CSS und JS ausgeführt

Arpit Bandil
quelle
0

Auf Windwos 10

Installieren Sie einfach node.js und stellen Sie sicher, dass sich die ausführbare Datei des Knotens in der Pfadvariablen befindet.

Rafaf Tahsin
quelle
0

(Unter Windows 10 - Rails 4.2.5) : Ich habe Folgendes gelöst:

1) Installieren Sie node.js

2) Installieren Sie das Coffe-Script-Source- Juwel

gem 'coffee-script-source', '1.8.0'

3) Fügen Sie diese Zeile in " config \ initializers \ assets.rb " hinzu.

Rails.application.config.assets.precompile + =% w (application.css)
Isa Souza
quelle
0

Für Windows-Benutzer Sie können den Laufzeitpfad von execjs zum Knoten einrichten

config/boot.rb

ENV['EXECJS_RUNTIME'] = 'Node'
Riguang Zheng
quelle