作者giive (lala)
看板Ruby
标题 Lighttpd 的 Rails加 PHP 设定 (相同 Domain不同目录)
时间Thu Nov 9 08:33:56 2006
http://lightyror.blogspot.com/2006/09/lighttpd-rails-domain_13.html
之前的文章有误,解决方式感谢ptt tka 版友提示
我上一篇介绍了不同 Domain 的 Rails 加 PHP 设定。而根据Syschen这篇文章,里面介绍了 Single Domain 不同 web dir的设定方式,实在受益良多。但是根据 ihower 的回报
成功跑起来之後,我发现 public 里面的css跟图片连结等还是不对。
我尝试了一下,当我将一个跑 Multi Domain 的 Lighttpd 改成单一 Domain ,将一个原本显示好好的图片,像是
http://rails.host.com/images/abc.jpg 改成了
http://rails.host.com/rails/images/abc.jpg 之後,然後 reload,他会出现
Routing Error
Recognition failed for "/rails/images/logo_friends.gif"
恩,很明显出现上面 ihower 兄讲的问题。根据 PTT 版友 tka 提示我
小弟 亦遇此问题 经由google搜寻後
自中这个网页获得解答
关键在於 alias.url 这个设定值 若依照该网页之方式设定 便可得到 正常的结果
所以我仔细看了一下这个网页,简单列出几个重点,除了我上一篇的重点外,还要加上 alias.url 才可正常 work
========Lighttpd Conf=============
var 部份一样加入一个 var.railsbasedir
var.railsbasedir = "/var/www/friends.roodo.com/rail1/"
Modules 要加上 mod_fastcgi , mod_rewrite, mod_redirect , mod_alias
server.modules += ("mod_fastcgi" , "mod_rewrite", "mod_redirect" , "mod_alias")
index file 要加上 dispatch.fcgi
index-file.names = ( "index.php", "index.html","index.htm", "default.htm", "dispatch.fcgi" )
Virtual Domain 要改成 目录设定
$HTTP["url"] =~ "^/rails/" {
include 'rails.conf'
}
$HTTP["url"] =~ "^/php/" {
include 'php.conf'
}
rails.conf 等下就会讲到怎麽写,php.conf 可以看 Lighttpd 的 Rails and PHP 设定 (不同 Domain ) 写法
=========在 lighttpd config 底下新开一个 Rails.conf======
我加入了 alias.url
server.document-root = var.railsbasedir+"public/"
alias.url = ( "/rails/" => var.railsbasedir+"public/" )
server.error-handler-404 = "/dispatch.fcgi"
server.indexfiles = ( "dispatch.fcgi", "index.html" )
fastcgi.server = ( ".fcgi" =>
( "localhost" =>
(
"min-proc" => 1,
"max-proc" => 1,
"socket" => var.railsbasedir+"tmp/app1-fastcgi.socket",
"bin-path" => var.railsbasedir+"public/dispatch.fcgi",
"bin-environment" => ( "RAILS_ENV" => "development" )
)
)
)
=============Rails Routing Config==============
修改 conf/route.rb,告诉 Rails 您处於
http://www.abc.com/rails/ 底下
map.connect 'rails/:controller/service.wsdl', :action => 'wsdl'
map.connect 'rails/:controller/:action/:id'
=============显示结果===================
如此当我将一个原本显示好好的图片,像是
http://rails.host.com/images/abc.jpg 改成了
http://rails.host.com/rails/images/abc.jpg 之後,他的确可以正常显示了。
不过,我程式所有的图片路径都是直接指定 img src="/images/abc.jpg",所以我的程式里面的图片完全无法正确显示,所以我的程式写法是无法从 Multi Domain 改成 Signal Domain 的。解决方式就是在 helper 里面,将所有图片显示的地方都用 helper 来帮我显示。
--
lighty RoR 是一个介绍 lighttpd , SQLite , Ruby and Rails 的 Blog
http://lightyror.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.100.157
※ 编辑: giive 来自: 61.230.100.157 (11/09 08:36)
※ 编辑: giive 来自: 61.218.90.242 (11/09 11:51)
※ 编辑: giive 来自: 61.218.90.242 (11/09 11:51)