【发布时间】:2012-03-07 23:40:24
【问题描述】:
如何在 config/environments/production.rb 中动态设置主机:
config.action_mailer.default_url_options = { :host => THE_HOST}
这是为了让应用在暂存和生产中都能正常工作。我们的登台服务器是 stage.app.com,链接需要到那里。
【问题讨论】:
标签: ruby-on-rails host
如何在 config/environments/production.rb 中动态设置主机:
config.action_mailer.default_url_options = { :host => THE_HOST}
这是为了让应用在暂存和生产中都能正常工作。我们的登台服务器是 stage.app.com,链接需要到那里。
【问题讨论】:
标签: ruby-on-rails host
在config/environments/production.rb 中这样做:
config.action_mailer.default_url_options = { :host => 'app.com' }
在config/environments/staging.rb 中这样做:
config.action_mailer.default_url_options = { :host => 'stage.app.com' }
正如@BrettBender 评论的那样:
您不需要动态设置主机。对于生产中的应用程序,将评估 production.rb。对于在暂存环境中运行的应用程序,rails 将自动加载暂存文件(与开发或您定义的任何自定义环境相同)
【讨论】:
config/environments/production.rb 时,你已经输入了config/production.rb,在staging 时也是如此。要扩展此答案,您无需动态设置主机。对于生产中的应用程序,将评估 production.rb。对于在暂存环境中运行的应用程序,rails 将自动加载暂存文件(与开发或您定义的任何自定义环境相同)。
config.action_mailer.default_url_options = { :host => ENV['MAIL_HOST'] } 并在每个服务器上设置 MAIL_HOST 环境变量
将此添加到 application_controller 中的前置过滤器:
ActionMailer::Base.default_url_options = {:host => request.host_with_port}
【讨论】: