Ошибка Rails: ExecJS :: ProgramError в столбцах # index [duplicate]

Проверьте все пакеты, которые вы установили для php, используя:

yum list installed | grep remi

Установите все соответствующие пакеты php, особенно php-devel на вашем компьютере.

63
задан AB10 10 February 2015 в 00:42
поделиться

17 ответов

В ваших /app/views/layouts/application.html.erb строках 5 и 6 измените первый параметр с application на default.

Я встретил ту же проблему, тоже для моя ситуация, я не знаю почему, но это происходит только в Windows. Параметр application работает на веб-сервере.

141
ответ дан Sonu 21 August 2018 в 02:37
поделиться
  • 1
    Спасибо @FlyC, я ценю это! – AB10 17 February 2015 в 06:42
  • 2
    Ха! То же самое для меня после обновления с Rails 4.1.1 до 4.2 на Windows. Спасибо за ответ. Ничто в обновлении не требует об этом вообще! # @ ^ $ @ # Так как вы это поняли? – MSC 22 February 2015 в 06:55
  • 3
    coffee-script source & gt; = 1.9.0 не работают должным образом под Windows. Вы можете сделать это: gem 'coffee-script-source', '1.8.0', чтобы принудительно 1.8.0, а затем выдать bundle update coffee-script-source – Michael Petch 17 March 2015 в 01:07
  • 4
    Спасибо @MichaelPetch, ваш комментарий - это то, что сработало для меня! – armstrhb 15 May 2015 в 02:36
  • 5
    Изменение «приложения» на «по умолчанию» не решит проблему, если вы проверите инструменты разработчика, вы увидите, что активы не включены из-за 404. Правильный ответ - отказ от источника coffe-script. – e-fisher 18 February 2016 в 15:31

(В Windows 8)

  1. Установить Node.js!
  2. Добавить его в PATH (ENV_VAR)
  3. перезапустить сервер
4
ответ дан adhix11 21 August 2018 в 02:37
поделиться
  • 1
    Что заставляет вас думать, что это лучшее решение, чем принятый годовой ответ ? – TylerH 7 March 2016 в 16:56
  • 2
    Я думаю, что это лучшее решение, потому что изменение «приложения» к "по умолчанию" в файле /layouts/application.html.erb может вызвать сброс файлов CSS и JS 404. Установка Node.js не требует внесения изменений в код, который либо создает нежелательные результаты (скрипты и таблицы стилей, которые не загружаются), либо вызывает вы должны сделать широкомасштабные изменения кода при переходе на производство. – Jonathan Harvey 9 June 2016 в 19:38
  • 3
    Работает на Windows 10 . проверенный – Rafaf Tahsin 2 August 2018 в 06:44

Его проблема с камнем turbolinks, поэтому его создание ошибки

Итак, в 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' %>

из

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

и раскомментируйте строку № 15 в app \ assets \ javascripts \ application.js

require turbolinks

и скопируйте ее в app \ assets \ stylesheets \ application.css в конце файла

Из этого будут запущены ваши css и js

0
ответ дан arpit bandil 21 August 2018 в 02:37
поделиться

мы должны только изменить строку 6 от application до default в /app/views/layouts/application.html.erb. изменение строки 5 приведет к тому, что таблицы стилей не будут загружены.

0
ответ дан BENS 21 August 2018 в 02:37
поделиться

У меня тоже была эта проблема. Я отправился в Sublime в мою папку проекта. Затем щелкнул папки приложений, просмотрел папку, макет, щелкнул application.html.erb и изменил строки 5 и 6 «приложение» на «по умолчанию». Отлично. Спасибо, что опубликовали вашу проблему и поблагодарили тех, кто ответил!

Я просто хотел добавить, что я вошел в Sublime. Я просто учился, и я не понимал, как получить доступ к файлу .erb. Просто хотел помочь другим.

3
ответ дан dmers 21 August 2018 в 02:37
поделиться
  • 1
    Нет проблем приятель, каждый день я учу что-то новое! – AB10 2 June 2015 в 20:49

Если вы работаете в WIndows, кофе-скрипт-источник 1.9.0 не работает в Windows.

Измените его на предыдущую версию, добавив эту строку в свой Gemfile:

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

И затем переустановите комплект, настраивающий зависимости для новой версии Gem с помощью:

bundle update coffee-script-source
58
ответ дан evedovelli 21 August 2018 в 02:37
поделиться
  • 1
    Кроме того, перезапустите сервер (несколько очевидный, но он получил меня). – Jeff 24 July 2015 в 14:29
  • 2
    это решение работает на Windows 10. убедитесь, что вы перезагрузите сервер, как говорит Джефф. – illiquent 10 June 2016 в 18:34
  • 3
    Это сработало, спасибо! – Nezir 11 August 2016 в 10:21
  • 4
    спасибо мастер @evedovelli – Llama.new 10 October 2016 в 06:24
  • 5
    Это работает для меня на win10 64bit, спасибо! – kernification 21 December 2016 в 17:29

Я пробовал все вышеперечисленные решения, и только один, который работал правильно, - установить node.js, добавить каталог в переменную окружения «путь» в окнах (найти в Advanced System Settings, Envirnment Variables, path) и затем перезагрузите компьютер и сервер. Я думаю, что более поздние версии источника кофе-скрипта должны зависеть от node.js вместе с другими драгоценными камнями. У меня была идентичная ошибка без использования источника кофе-скрипта.

Изменение «приложения» на «по умолчанию» является ужасным решением, потому что оно просто удаляет все стили CSS-приложения. Я вообще не рекомендую.

0
ответ дан Graeme Campbell 21 August 2018 в 02:37
поделиться

Просто установите NodeJS на свой локальный компьютер (убедитесь, что соответствующая запись добавлена ​​в PATH) и добавьте

gem 'execjs'

в Gemfile .

7
ответ дан Ilya Bodrov-Krukowski 21 August 2018 в 02:37
поделиться
  • 1
    Я не понял, что NodeJS не установлен на моей машине. Я нашел это видео, которое в основном решает его так же youtube.com/watch?reload=9&v=l04kFL3pnEk и говорит об установке NodeJS на машине Windows. – Forrest 5 June 2018 в 02:00

Я на Rails 5.1.6. Я была такая же проблема. Как было рекомендовано выше, я деградировал драгоценный камень с кофе-сценарием, который решил проблему.

# 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

Примечание: я не изменял файл application.html.rb

0
ответ дан Kaz 21 August 2018 в 02:37
поделиться

Вам нужно прочитать инструкцию на странице рельсов. Вам необходимо использовать ExecJS gem и некоторую среду выполнения JS.

Более практично: 1. Установить некоторую Juntime Runtime, например node.js

2.-get ExecJS gem-> gem install execjs

Экспликация:

На странице рельсов:

«Компиляция сжатия JavaScriptScript и JavaScript требует, чтобы в вашей системе было время выполнения JavaScript, в отсутствие во время выполнения вы увидите ошибку execjs во время компиляции актива. Обычно Mac OS X и Windows имеют установленную среду JavaScript. Rails добавляет драгоценный камень therubyracer в созданный Gemfile в комментариях для новых приложений, и вы можете раскомментировать его, если вам это нужно. therubyrhino является рекомендуемым временем выполнения для пользователей JRuby и по умолчанию добавляется в Gemfile в приложениях, созданных в JRuby. Вы можете исследовать все поддерживаемые среды выполнения в ExecJS. "

Из hte gitHub из ExecJS:

«ExecJS позволяет запускать код JavaScript из Ruby. Он автоматически выбирает лучшее время исполнения для оценки вашей программы JavaScript, затем r выдает результат для вас как объекта Ruby.

ExecJS поддерживает эти промежутки времени:

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

0
ответ дан Mauro 21 August 2018 в 02:37
поделиться

У меня эта проблема некоторое время, и я прошел через все ответы в этом потоке и нашел, что все они не увенчались успехом, я решил добавить свое решение в надежде, что он поможет будущим пользователям Rails.

Я сделал все в этом потоке - изменение application до default позволяет ему проходить без ошибок, но затем, как только вы на самом деле пытаетесь использовать какой-либо JavaScript, отображается ошибка относительно не имея возможность найти default.js. Я установил NodeJS и поместил его в папку Ruby / bin. Это ничего не сделало, поэтому я удалил его.

Вы действительно можете временно обойти эту проблему с «отключением application с default» решением, но это очень короткий срок. Это решение может работать для вас, если у вас нет намерения стилизовать или добавить JavaScript в приложение через конвейер Rails. Я не тестировал это сам, но я предполагаю, что в него могут работать JavaScript и таблицы стилей в файле заголовка application.html. Но тогда вы теряете магию Rails.

У меня была эта проблема на платформах Windows 8, Windows 10 и Ubuntu.

Единственное, что решает его, для меня и по-прежнему делает JavaScript и таблицы стилей, - это сначала изменить application на application.css для таблиц стилей (даже если вы используете Sass / SCSS, потому что он все еще компилируется в css) и application.js для ссылки JavaScript. Как только это будет сделано, зайдите в ваш файл /assets/javascripts/application.js и удалите // перед //= require turbolinks.

И теперь ваше приложение должно работать нормально.

Это, вероятно, более глубокая проблема с turbolinks, но это быстрое обходное решение, которое еще не подвело меня.

22
ответ дан MK McKenzie 21 August 2018 в 02:37
поделиться
  • 1
    это решение работало для меня на окнах 10 и позволило рубину увидеть другие таблицы стилей, которые у меня были в «конвейере». изменение «приложения» на «по умолчанию» - действительно разбивает таблицы стилей. возможно, это просто ошибка коффескрипта в этой причине, но это решение отлично поработало. – illiquent 10 June 2016 в 00:42
  • 2
    Вау; Я бы дал вам +150, если мог. Спасибо большое. это сработало на выигрыше 7 x64 – Sassy Llama 30 November 2016 в 22:06
  • 3
    Огромное спасибо. Если бы только я открыл этот ответ 2 часа назад ... – pdoherty926 15 December 2016 в 21:03
  • 4
    Спасибо, это работает для меня – Javid 5 July 2018 в 10:22

Я просто изменил «application» на «default» в строках 5 и 6 и разрешил. /app/views/layouts/application.html.erb.

FROM:

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

TO:

<%= stylesheet_link_tag    '**default**', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag '**default**', 'data-turbolinks-track' => true %>
1
ответ дан Mogsdad 21 August 2018 в 02:37
поделиться

В Windows 10 версии 1511 добавлен gem 'coffee-script-source', '1.8.0' в мой gemfile, а затем ruby ​​bin \ bundle update coffee-script-source из каталога проекта. NB: предыдущая версия сценария с кофе-скриптом, которая была заменена, была 1.10.0

5
ответ дан Paul Leach 21 August 2018 в 02:37
поделиться

В Windows 10

Просто установите node.js и убедитесь, что исполняемый файл узла находится в переменной пути.

0
ответ дан Rafaf Tahsin 21 August 2018 в 02:37
поделиться
  • 1
    перезапустите сервер с помощью новой командной строки. – Rafaf Tahsin 2 August 2018 в 06:51

Наконец-то он начал работать с облегчением. Хотя я не совсем уверен, что заставило его работать. Пробовал все следующее. 1) Установил node.js, добавил coffescript npm к нему и перезапустил. 2) Добавлен gem для exec.js и изменен runtime.rb, чтобы он не мог использовать файл сценария Windows по умолчанию. См. Эту ссылку о том, как это сделать: [ https://github.com/sstephenson/execjs/issues/81] [1] 3) Чтобы быть в безопасности, также добавлен рубиновый драгоценный камень gem 'therubyracer ', platform:: ruby ​​

В итоге добавлены два сценария, nodejs и rubyracer и добавлены execjs, так что он выбирает лучший скриптовый движок, но не может выбрать механизм обработки скриптов.

Полагаю, что только установка nodejs могла бы работать после добавления execjs. Однако я не перезапустил (установка post nodejs) и попробовал все другие вещи.

1
ответ дан Rpant 21 August 2018 в 02:37
поделиться

в окне сценария кофе-скрипта Windows = = 1.9.0 не работает должным образом. просто добавьте Gemfile

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

и запустите

bundle update coffee-script-source
19
ответ дан Thorin 21 August 2018 в 02:37
поделиться
0
ответ дан Isa Souza 31 October 2018 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: