【问题标题】:How can I show different content based on different domain name in same Ruby on Rails applications?如何在同一个 Ruby on Rails 应用程序中根据不同的域名显示不同的内容?
【发布时间】:2011-12-09 03:46:06
【问题描述】:

我有Ruby on Rails应用程序,存储在路径/var/www/apps下,我使用Nginx和Passenger来访问这个应用程序,目前我使用两个域名来访问这个应用程序,www.test.com和console.test.com,用Nginx,配置文件类似这样

    server_name www.test.com console.test.com;
    root /var/www/apps/current/public;
    passenger_enabled on;
    passenger_use_global_queue on;
    passenger_min_instances 3;
    ...

有了这个配置,不仅www.test.com,还有console.test.com,显示的应用内容都是一样的。

问题,我有个需求,当客户端访问不同域名的应用程序时,显示给客户端的应用程序内容是不同的,例如,当我使用域名www.test.com访问时,显示的是共同的内容,当我使用域名console.test.com 访问时,显示的控制台内容,两个内容都构建在同一个Ruby on Rails 应用程序中。

我该怎么办?为 Nginx、Passenger 或 Ruby on Rails 配置?

【问题讨论】:

    标签: ruby-on-rails nginx passenger


    【解决方案1】:

    通常这是在 Rails 中完成的。

    您可能想查看这个关于子域的精彩教程:https://github.com/RailsApps/rails3-subdomains

    重点是查看request.subdomain,并相应地加载内容(db记录)。

    【讨论】:

    • 谢谢,詹姆斯。我认为这对我很有帮助。但是这个项目是存在的,我怕我把这个新插件添加到项目中并更新一些依赖项,应用程序会崩溃。有什么配置方式可以做同样的事情吗?
    • 不,你不需要添加插件。只需阅读示例项目的工作方式并编写您自己的逻辑即可。 IMO 这非常简单明了。
    猜你喜欢
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多