我被要求更改Rails项目上的路由,以便路由只响应应用名称(或其他任意字符串)是域名后面的第一个字符串的请求,例如
www.thething.com/appname/users/sign_in
代替www.thething.com/users/sign_in
www.thething.com/appname
代替www.thething.com
www.thething.com/appname/search
代替www.thething.com/search
我建议使用子域名appname.thething.com
,但客户端非常具体想要以上述格式使用网址。
www.thething.com
将是一个启动页面,其中包含指向www.thething.com/appname
的链接,目的是在将来添加新文件夹名称的其他应用/页面。
是否有一种简单的方法可以修改路由文件,以便所有路由都可以在所有资源和路由前面加.../appname
,同时在域之后?
答案 0 :(得分:1)
一个选项是将所有现有路线包裹在:namespace :appname do
... end
中,如下所示:
# config/routes.rb
Appname::Application.routes.draw do
namespace :appname do
# existing routes go here
end
end
我不确定这是否是最优雅的解决方案,但它会在所有路线前加/appname
。