Ejecuto el servidor web Thin para básicamente cada aplicación en mis entornos de desarrollo/prueba. Cuando utilicé Mongrel con Rails 2.x, todo lo que tuve que escribir fue script/server
para que ejecutara el servidor web que yo elija. Pero con Rails 3, debo especificar Thin cada vez. ¿Hay alguna forma de que Thin funcione en mis aplicaciones de Rails simplemente escribiendo rails s
en lugar de rails s thin
?¿Existe alguna manera de que Rails 3.0.x pueda usar de forma predeterminada Thin?
Respuesta
A partir de rieles 3.2rc2, delgada es ahora dirigido por defecto en la invocación de rails server
cuando gem 'thin'
es en su Gemfile! Gracias a esta solicitud de extracción: https://github.com/rack/rack/commit/b487f02b13f42c5933aa42193ed4e1c0b90382d7
Funciona muy bien para mí.
Simplemente instale thin, cd en el directorio donde se encuentra su aplicación y ejecute thin thin. Funciona perfectamente aquí. :)
Puede usar http://www.softiesonrails.com/2008/4/27/using-thin-instead-of-mongrel para cambiar según sea necesario. (Es el que yo usé)
Sí, es posible hacer esto.
La manera en que funciona el comando rails s
al final del día es cayendo a Rack y permitiéndole elegir el servidor. De forma predeterminada, el controlador de Rack intentará usar mongrel
y si no puede encontrar mongrel, irá con webrick
. Todo lo que tenemos que hacer es parchar el controlador ligeramente. Tendremos que insertar nuestro parche en el script rails
. Esto es lo que debes hacer, abre tu archivo script/rails
. Por defecto se debe tener este aspecto:
#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
APP_PATH = File.expand_path('../../config/application', __FILE__)
require File.expand_path('../../config/boot', __FILE__)
require 'rails/commands'
insertamos nuestro derecho parche antes de la línea de require 'rails/commands'
. Nuestro nuevo archivo debe tener este aspecto:
#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
APP_PATH = File.expand_path('../../config/application', __FILE__)
require File.expand_path('../../config/boot', __FILE__)
require 'rack/handler'
Rack::Handler.class_eval do
def self.default(options = {})
# Guess.
if ENV.include?("PHP_FCGI_CHILDREN")
# We already speak FastCGI
options.delete :File
options.delete :Port
Rack::Handler::FastCGI
elsif ENV.include?("REQUEST_METHOD")
Rack::Handler::CGI
else
begin
Rack::Handler::Mongrel
rescue LoadError
begin
Rack::Handler::Thin
rescue LoadError
Rack::Handler::WEBrick
end
end
end
end
end
require 'rails/commands'
en cuenta que ahora intentará Mestizo y si hay un error tratar de Delgado y sólo entonces ir con WEBrick. Ahora cuando escribe rails s
obtenemos el comportamiento que buscamos.
En script/rails
las siguientes obras, así:
APP_PATH = File.expand_path('../../config/application', __FILE__)
require File.expand_path('../../config/boot', __FILE__)
require 'rack/handler'
Rack::Handler::WEBrick = Rack::Handler::Thin
require 'rails/commands'
- 1. ¿Existe alguna manera fácil de usar InternalsVisibleToAttribute?
- 2. ¿Hay alguna forma de evitar que el servidor integrado de Rails escuche en 0.0.0.0 de forma predeterminada?
- 3. Rails ignorando config.action_dispatch.x_sendfile_header? Uso de Thin + Nginx
- 4. ¿Cómo cambiar la ruta de registro predeterminada de Rails 3.0?
- 5. ¿Hay alguna manera de hacer que TFS se pueda enlazar?
- 6. ¿Existe alguna biblioteca de código abierto que se pueda usar para buscar en Deep Web?
- 7. ¿Hay alguna forma en que pueda hacer dos lecturas atómicas?
- 8. ¿Existe alguna manera anotada de registrar PropertyEditors globalmente en Spring MVC 3.0?
- 9. ¿Existe alguna forma práctica de usar números naturales en Haskell?
- 10. ¿Existe alguna manera automática de descubrir la sintaxis de Embperl 1.x que no es compatible con Embperl 2.x?
- 11. ¿Hay alguna forma de comprobar que existe una asociación has_ many en Rails 3.1?
- 12. ¿Existe una SqlConnection existente que pueda usar en LinqPad?
- 13. ¿Existe alguna forma mejor de actualizar WebView?
- 14. ¿Hay alguna manera de hacer que el texto no se pueda seleccionar en una página HTML?
- 15. ¿Alguna posibilidad de que javafuse pueda funcionar?
- 16. ¿Debo usar cadena Unicode de forma predeterminada?
- 17. ¿Hay alguna forma de actualizar VS 'CSS validation to 3.0?
- 18. ¿Hay alguna manera de que pueda cambiar el orden de carga de Apache VirtualHosts primero?
- 19. ¿Existe alguna manera de que pueda ejecutar un proyecto ASP.NET MVC en el alojamiento web compartido godaddy.com?
- 20. ¿Existe alguna manera de especificar los valores predeterminados del esquema en Visual Studio 2008 para que un archivo se abra con miembros colapsados de forma predeterminada?
- 21. ¿Hay alguna manera de crear un objeto python que no se pueda ordenar?
- 22. ¿Existe alguna forma más elegante de calcular x = (y/n) + (y% n? 1: 0)?
- 23. ¿Cómo se configura Log4r con Rails 3.0.x?
- 24. ¿Hay alguna forma de que MS Access pueda obtener el usuario actual de Active Directory?
- 25. ¿Hay alguna herramienta que pueda incorporar CSS?
- 26. Rails + Devise - ¿Hay alguna manera de BANAR a un usuario para que no pueda iniciar sesión o restablecer su contraseña?
- 27. ¿Existe un componente de terminal GTK que se pueda usar en Windows?
- 28. ¿Existe alguna forma mejor de escribir un método de "cadena contiene X"?
- 29. ¿Existe una versión de kdevelop que pueda instalar en Windows?
- 30. rails 3.1 - ¿Forzar los activos de desarrollo para que se publiquen como estaban en 3.0.x?
Como una actualización, el inicio delgado -V funciona para imitar el comportamiento que generalmente se ve al iniciar el servidor de rieles, también conocido como donde se ve la salida en el terminal de cada conexión. – ddd
eso es genial. pero no hay nada que haga que 'rails s' ejecute' thin start'? – tubbo