1

我有一个具体的案例场景如下。

我有一个 ROR 应用程序,它将使用相同的部署在多个域下运行。因此,我将不得不根据域名提供一些静态资产(图像、html 文件)。任何人都可以建议这样做的理想方法吗?

在我的应用程序控制器中,我可以找到域名

def current_domain
    @current_domain ||= Domain.find_by_domain(request.host.gsub(/^www\./, ''))
end

但是我可以在我的控制器中使用这个助手来提供公共目录中的静态文件吗?此外,为该域创建这些域名和静态页面由中央管理员处理,并且可以在任何时间点动态完成。我可能必须根据域名创建不同的目录并将静态资产存储在其中。但是,当对特定域的请求进入时,我如何呈现它是我手头的问题。

任何有关如何使用 Rails 解决此问题的帮助将不胜感激。

4

1 回答 1

0

我建议为每个域使用一个应用程序布局,并使用动态布局在您的控制器中选择正确的布局。

class ProductsController < ApplicationController
  layout :products_layout

  def show
    @product = Product.find(params[:id])
  end

  private
    def products_layout
      @current_domain.special? ? "special" : "products"
    end

end
于 2013-04-11T11:52:39.447 回答