2013-04-03 5 views
0

Я создаю новое рельсы 4beta1 app (ruby 2.0) с нуля, и когда я запускаю сервер в режиме разработки, он работает нормально, но когда я пытаюсь в процессе производства, это не так.Проблемы с рельсами 4 в производственной среде

Я уже пытаюсь запустить bundle exec rake assets:precompile RAILS_ENV=production и изменить config.serve_static_assets к истинным в файле config/environments/production, но я все еще получил ошибку: ошибка

=> Booting WEBrick 
=> Rails 4.0.0.beta1 application starting in production on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
[2013-04-03 11:53:46] INFO WEBrick 1.3.1 
[2013-04-03 11:53:46] INFO ruby 2.0.0 (2013-02-24) [x86_64-darwin12.2.0] 
[2013-04-03 11:53:46] INFO WEBrick::HTTPServer#start: pid=13848 port=3000 
I, [2013-04-03T11:53:50.521162 #13848] INFO -- : Started GET "/" for 127.0.0.1 at 2013-04-03 11:53:50 +0100 
F, [2013-04-03T11:53:50.695426 #13848] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/"): 
    actionpack (4.0.0.beta1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
    actionpack (4.0.0.beta1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
    railties (4.0.0.beta1) lib/rails/rack/logger.rb:38:in `call_app' 
    railties (4.0.0.beta1) lib/rails/rack/logger.rb:21:in `block in call' 
    activesupport (4.0.0.beta1) lib/active_support/tagged_logging.rb:67:in `block in tagged' 
    activesupport (4.0.0.beta1) lib/active_support/tagged_logging.rb:25:in `tagged' 
    activesupport (4.0.0.beta1) lib/active_support/tagged_logging.rb:67:in `tagged' 
    railties (4.0.0.beta1) lib/rails/rack/logger.rb:21:in `call' 
    actionpack (4.0.0.beta1) lib/action_dispatch/middleware/request_id.rb:21:in `call' 
    rack (1.5.2) lib/rack/methodoverride.rb:21:in `call' 
    rack (1.5.2) lib/rack/runtime.rb:17:in `call' 
    activesupport (4.0.0.beta1) lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
    actionpack (4.0.0.beta1) lib/action_dispatch/middleware/static.rb:64:in `call' 
    railties (4.0.0.beta1) lib/rails/engine.rb:510:in `call' 
    railties (4.0.0.beta1) lib/rails/application.rb:96:in `call' 
    rack (1.5.2) lib/rack/lock.rb:17:in `call' 
    rack (1.5.2) lib/rack/content_length.rb:14:in `call' 
    rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service' 
    /Users/jbatista/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service' 
    /Users/jbatista/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run' 
    /Users/jbatista/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread' 

Веб-страница:

enter image description here

ответ

3

В Rails 4.0 по техническим причинам страница Rails по умолчанию не работает в производственной среде, включая любой сервер (например, heroku). Хорошей новостью является то, что ошибка исчезнет, ​​когда вы начнете добавлять контроллеры, задавать маршруты и т. Д.

Просто запустите разработку, и со мной все будет в порядке.

0

В config/environments/production.rb serve_static_assets должен быть ложным, потому что на производстве их сервер будет обрабатывать их.

config.serve_static_assets = false 

Кроме того, вы должны не использование WEBrick в производстве, следует использовать только в процессе разработки. Например, вместо thin.

enter image description here

В принципе, добавить gem 'thin' к нашему Gemfile.

+0

Да, вы правы, но это не устраняет проблему. – jbatista

1

также выглядит как вам нужно определить корневой маршрут config/routes.rb что-то вроде

MyApp::Application.routes.draw do 
root :to => "MyApp#index" 
end 

где MyApp относится к вашему имени приложения.

+0

Nop, проблемы были не в этом. Это технические изменения в рельсах 4. – jbatista

Смежные вопросы