MOONGIFT: » Railsをさらに加速するテクノロジー「Ruby Enterprise Edition」:オープンソースを毎日紹介

seen from United Kingdom
seen from Austria

seen from Netherlands
seen from United Kingdom
seen from United States
seen from United Kingdom

seen from Malaysia
seen from United States
seen from United Kingdom
seen from China
seen from Japan

seen from Japan

seen from Japan
seen from China
seen from Italy
seen from Italy
seen from China
seen from Serbia
seen from Japan
seen from Germany
MOONGIFT: » Railsをさらに加速するテクノロジー「Ruby Enterprise Edition」:オープンソースを毎日紹介
How to setup mod_rails using Phusion on Mac OS X
Phusion Passenger with a prefix
The Mongrel Web server can run with a URL prefix, using the --prefix option. This is useful for running an app in a "subdirectory"—say BankDirectr at http://banks.info/directr and BankRobbr at http://banks.info/robbr .
In development you want that same prefix; this way your stylesheets, images, and other static assets show correctly at the right URL. For this we had originally modified script/server to always pass --prefix to Mongrel.
Switching to Phusion Passenger has removed one tab from my screen session, and made development faster and easier. However, getting it to work with a subdirectory took a few minutes.
The basic idea is that Apache handles the static assets, and Passenger handles the rest. So in your VirtualHost block you need to add an Alias from the prefix to the DocumentRoot. Like this:
<VirtualHost *:80> ServerName banks.info DocumentRoot /var/www/robbr Alias /robbr /var/www/robbr </VirtualHost>
However, in an attempt to ruin our fun, Phusion Passenger's documentation says this:
Phusion Passenger conflicts with mod_rewrite and mod_alias. Those modules may be installed and loaded together with mod_passenger, and they will work fine outside virtual hosts that contain a Rails application, but we recommend you not to use their features inside virtual hosts that contain a Rails application.
Fine. It works just fine for me using mod_alias, but that's only in my development environment and not in production. Here's another solution:
cd /var/www/robbr/public ln -s . robbr
Now any asset that references /robbr , such as /robbr/stylesheets/layout.css , will follow the symlink to public .