我已经成功地用乘客部署了我的rails应用程序。但是,我的redirect_to在生产环境中的行为与在开发环境中的行为不同。
我有这个代码:
redirect_to( :page => :signup, :subdomain => false)
在开发应用程序上,它工作得很好,所以:
http://demo.charterbox.com.au 重定向到http://charterbox.com.au/?page=signup
完美!
在我刚刚上传的生产应用程序上,它这样做:
http://demo.charterbox.com.au 重定向至http://com.au/?page=signup
它不只是拿走子域,而是拿走了整个域名。不管我是否使用子域,它仍然只会重定向到http://.com.au
以下是应用程序控制器中的完整代码:
before_filter :check_domain
def check_domain
if request.subdomain.blank? == false
@account = Account.where("site_address = ?", request.subdomain).limit(1)
if @account.empty?
redirect_to( :page => :signup, :subdomain => false)
end
end
end
有什么建议吗?
您需要配置 TLD 长度。
config.action_dispatch.tld_length sets the TLD (top-level domain) length for the application. Defaults to 1.
http://guides.rubyonrails.org/configuring.html#configuring-action-dispatch