Rails源码阅读(二)_script/server
Rails源码阅读(二)_script/server
?
如果明白了script/console,那么理解script/server会轻松些;
区别在于,启动console其实是需要加载irb,而启动server则要处理http请求;
应该先看看本系列的如下文章:boot:Rails源码阅读(零)_config/boot
http-server:动手写rails(一)_Rack标准和HttpServer之WEBrick
?
script/server的代码:
#(1) 可以指定maping的path,这样在rack中就map到这个路径:map map_path
server = Rack::Handler.get(ARGV.first) rescue nilunless server begin server = Rack::Handler::Mongrel rescue LoadError => e server = Rack::Handler::WEBrick endendserver.run(app, options.merge(:AccessLog => []))?这里要明白流程:
启动server是要启动什么?
HttpServer(CGIserver),这里就是WEBrick或者Mongrel
server怎么和ruby联系上了?
WEBrick等遵循rack标准,server.run(rack_app, options)
ruby写一个rack的app即可
rails里的rack是什么?
是:ActionController::Dispatcher
出处代码:inner_app = ActionController::Dispatcher.new
还需要哪些知识?
rack的介绍,原理,好处,标准,使用等
WEBrick活Mongrel的介绍和使用
?
====结束====
=== ? ? ? ? ? ===
== ? ? ? ? ? ? ? ?==
= ? ? ? ? ? ? ? ? ? ? =
| ? ? ? ? ? ? ? ? ? ? ? |
?
?
?
?
?
?
?
?
?
?
?
?