我用两条“路线”写了一个简单的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
答案 0 :(得分:1)
您是否尝试过重定向网址(:controller,:action)?
有同样的问题,为我解决了...(除了css和js公共资产......)