Подтвердить что ты не робот

Можно ли запустить Rails 4 в Windows?

Я работаю над проектом Rails 4 (с использованием проекта release) и теперь вам нужно сотрудничать с кем-то на машине Windows. Однако я даже не могу получить базовую веб-страницу:( Было довольно больно даже при установке sqlite3 с использованием Ruby 2.0. Теперь, когда я пытаюсь получить веб-страницу (я просто создал фиктивный/домашний/индексный контроллер и просмотр), я получаю эту ошибку:

Showing C:/Users/me/RubymineProjects/test_project/app/views/layouts/application.html.erb where line #6 raised:

  (in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/turbolinks-1.1.1/lib/assets/javascripts/turbolinks.js.coffee)

Extracted source (around line #6):
3  <head>
4    <title>TestProject</title>
5    <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
6    <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
7    <%= csrf_meta_tags %>
8  </head>
9  <body>

Является ли Rails 4 еще не готовым к Windows? Использование Ruby 2.0.0p195.

ОБНОВЛЕНИЕ. В соответствии с запросом @szines здесь вывод веб-страницы для

http://localhost:3000/rails/info/properties:
Ruby version    2.0.0 (x64-mingw32)
RubyGems version    2.0.3
Rack version    1.5
Rails version   4.0.0.rc1
JavaScript Runtime  JScript
Active Record version   4.0.0.rc1
Action Pack version 4.0.0.rc1
Action Mailer version   4.0.0.rc1
Active Support version  4.0.0.rc1
Middleware  
ActionDispatch::Static
Rack::Lock
#<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x000000036b85c0>
Rack::Runtime
Rack::MethodOverride
ActionDispatch::RequestId
Rails::Rack::Logger
ActionDispatch::ShowExceptions
ActionDispatch::DebugExceptions
ActionDispatch::RemoteIp
ActionDispatch::Reloader
ActionDispatch::Callbacks
ActiveRecord::Migration::CheckPending
ActiveRecord::ConnectionAdapters::ConnectionManagement
ActiveRecord::QueryCache
ActionDispatch::Cookies
ActionDispatch::Session::CookieStore
ActionDispatch::Flash
ActionDispatch::ParamsParser
Rack::Head
Rack::ConditionalGet
Rack::ETag
Warden::Manager
Application root    C:/Users/me/RubymineProjects/test_project
Environment development
Database adapter    sqlite3
Database schema version 20130523073322
4b9b3361

Ответ 1

<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>

Измените это на:

<%= stylesheet_link_tag "defaults", media: "all", "data-turbolinks-track" => true %>

Он должен работать.

Будет здорово, если кто-нибудь сможет объяснить это.

Дополнительная информация:

ExecJS:: RuntimeError в индексе пользователей # (RoR)

ExecJS и не удалось найти время выполнения JavaScript

Ответ 2

Просто установите node.js, и проблема исчезнет.

Объяснение: Если вы попытаетесь прекомпилировать активы, вы получите следующую трассировку:

(in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/turbolinks-1.3.0/lib/assets/javascripts/turbolinks.js.coffee)
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:142:in `exec_runtime'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:28:in `block in exec'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:41:in `compile_to_tempfile'
...

Как вы можете видеть, проблема с ExecJS. ExecJS позволяет запускать код JavaScript из Ruby и требует, чтобы в вашей системе был установлен один из интерпретаторов JS. Здесь список поддерживаемых интерпретаторов. Обычно вы можете использовать therubyracer, который является только V8, но есть проблемы с компиляцией V8 под окнами. Таким образом, вы можете выбрать другой вариант - NodeJS. ExecJS будет использовать его автоматически, когда вы установите NodeJS и добавите его в свой PATH.

Ответ 3

изменение следующей строки

<%= javascript_include_tag "application", "data-turbolinks-track" => true %>

to

<%= javascript_include_tag "defaults", "data-turbolinks-track" => true %>

работы.

ИЛИ

вы можете установить node.js

Ответ 5

Я столкнулся с этой проблемой некоторое время, и это на windows jquery и coffee script не работает в их последнем обновлении, и, наконец, я нашел этот замечательный метод, который отлично работал без необходимости загрузки node или выхода//требуется дерево. Итак, все, что вам нужно, это настроить параметры в вашем runtimes.rb, который живет в execjs, чтобы быть таким - вы найдете эту часть с небольшими различиями, исправив их, и вам будет хорошо идти.

JScript = ExternalRuntime.new(
:name        => "JScript",
:command     => "cscript //E:jscript //Nologo",
:runner_path => ExecJS.root + "/support/jscript_runner.js",
:encoding    => 'UTF-8' # CScript with //U returns UTF-16LE

Вы можете посмотреть это видео для подробного решения. https://www.youtube.com/watch?v=N5i94L17KPo