部署Sinatra应用程序后的路由问题

时间:2010-10-08 03:35:23

标签: apache2 sinatra passenger

我用两条“路线”写了一个简单的Sinatra应用程序:“/ show”和“/ listshows”。当我在Webrick上运行应用程序时,一切都可以很好地用于静态和非静态路由。以下是我使用的URL:

今天,我在Apache和Passenger 2上部署了我的简单应用程序。我的网络服务器位于我的专用网络上,名为Millhouse。我基本上想要使用以下URL访问应用程序:

探测器是“slwa”字符串不是我的任何URL的一部分。例如,当您尝试访问“http:// millhouse / slwa”时,应自动重定向到“http:// millhouse / slwa / listshows”。当我的应用程序重定向时,它最终将我发送到“http:// millhouse / listshows”。缺少“slwa”部分。

我不想创建新的虚拟主机,所以我在我的Ubuntu服务器上重用了“root”虚拟主机。这是我的虚拟主机:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>
    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

    ### Here's the only line that I added to the default
    RackBaseURI /slwa
</VirtualHost>

我还在/ var / www下创建了一个符号链接,指向我的应用程序的公共目录。最后,这是我的config.ru:

# This is straight from the Phusion Passnger Users Guide"
require 'rubygems'
require 'sinatra'

root_dir = File.dirname(__FILE__)

set :environment, ENV['RACK_ENV'].to_sym
set :root,        root_dir
set :app_file,    File.join(root_dir, 'slwa.rb')
disable :run

require 'slwa'
run Sinatra::Application

我错过了哪一部分?

提前感谢您的帮助!

Tom Purl

1 个答案:

答案 0 :(得分:1)

您是否尝试过重定向网址(:controller,:action)?

有同样的问题,为我解决了...(除了css和js公共资产......)