在具有命名空间/管理功能的rails应用程序中,请考虑以下路由:
namespace :admin do
root :to => 'home#index'
[.. resources cut here..]
end
get 'etc/:etc' => 'etc#etc'
[.. other top level routes cut..]
如果我想将相同的Rails代码库部署到2个独立的服务器,frontend.com仍会看到顶级路由'etc /:etc'。
但是,如果我想将相同的代码库部署到仅管理服务器,以便请求只是http://backend.com并且具有命名空间:admin接管作为顶级而不必键入或使用{ {3}}
尝试使用.htaccess重写时,我遇到了admin命名空间代码中的URL生成问题,以及资产不再正确加载。
这只是不值得追求的东西吗?
答案 0 :(得分:1)
当然,您可以根据根语句进行条件化。
namespace :admin do
root :to => 'admin#index'
...
end
if SOMETHING
root :to => "admin#index"
end
(在本例中我使用了AdminController而不是HomeController。)
用户可以输入http://backend.com/,但在某些时候,/ admin可能会显示在浏览器的网址栏上。
SOMETHING可能是对主机名或ENV的测试。您可以在vhost配置中设置ENV。