Cómo implementar la aplicación Rails 3.1 en un subdirectorio

¿Cómo configuro una aplicación Rails 3.1 para que se ejecute en un directorio específico como “/ r”?

Lo intenté en config.ru:

map '/r' do run Debtor::Application end 

pero que acaba de devolver “No encontrado: / r”

Para que funcionara tuve que incluir todas las rutas en un ámbito:

 scope '/r' do #routes end 

y para agregar la siguiente línea a config / applcation.rb

 config.assets.prefix = "/r/assets" 

y mover mis archivos jquery ui css de / stylesheets a / r / stylesheets.

esto parece demasiado complicado ¿no hay una manera más fácil? ¿Y por qué no está funcionando mi configuración config.ru?

Mi caso de uso es tener un back-end ajax con Rails para un servidor de wordpress.

estas corriendo debajo del pasajero?

Entonces RailsBaseURI es probablemente lo que quieres.

https://www.phusionpassenger.com/library/deploy/apache/deploy/ruby/#deploying-an-app-to-a-sub-uri

Si no se está ejecutando bajo el pasajero, actualice su pregunta para mostrar en qué está implementado.

Lo que funcionó para mí fue crear el enlace simbólico para el sub-uri (/ info) a la carpeta ‘pública’ de la aplicación (configuración bajo otro usuario en mi servidor, / home / otheruser / current / public).

 ln -s /home/myapp/current/public /home/mysite/public_html/info 

Luego inserté esta configuración dentro de la entrada de VirtualHost para el sitio:

 Alias /info /home/myapp/current/public  PassengerAppRoot /home/myapp/current RackEnv production RackBaseURI /info  

Sin rutas de ámbito, sin configuración de prefijo de activos.

Aquí se explica cómo implementar una aplicación Rails 3.1 en un subdirectorio en Apache, reemplazando config.action_controller.relative_url_root que ya no existe.

En config/routes.rb :

 scope 'my_subdir' do # all resources and routes go here end 

En su archivo de configuración de Apache:

 Alias /my_subdir /var/www/my_subdir/public  SetEnv RAILS_RELATIVE_URL_ROOT "/my_subdir" PassengerAppRoot /var/www/my_subdir  

Y debería funcionar, incluyendo apuntar automáticamente todos sus activos a /my_subdir .