0

在具有命名空间 /admin 功能的 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 接管作为顶层,而无需键入或使用http: //backend.com/admin

在尝试使用 .htaccess 重写时,我在管理命名空间代码中遇到了 URL 生成问题,并且资产不再正确加载。

这只是不值得追求的东西吗?

4

1 回答 1

1

当然,您可以在根语句周围设置条件。

namespace :admin do
  root :to => 'admin#index'
  ...
end
if SOMETHING
  root :to => "admin#index"
end

(在此示例中,我使用了 AdminController 而不是 HomeController。)

用户可以键入http://backend.com/,但有时 /admin 可能会出现在浏览器的 URL 栏上。

SOMETHING 可以是对主机名或 ENV 的测试。您可以在虚拟主机配置中设置 ENV。

于 2012-05-04T19:20:03.507 回答