我有一个域名为“www.mysite.com”的应用程序,它托管着 Drupal,而“app.mysite.com”则托管着 Rails 应用程序。
我的情况是设计邮件 url 指向“www.mysite.com”而不是“app.mysite.com”。
在 devise.rb 中,我的设置如下所示:
config.mailer = "Devise::Mailer"
ActionMailer::Base.default_url_options = { :host => 'app.mysite.com' }
在 production.rb 中:
config.action_mailer.default_url_options = { :host => 'app.mysite.com' }
ActionMailer::Base.smtp_settings =
{
:address => 'smtp.sendgrid.net', # SendGrid SMTP server
:domain => 'mysite.com', # SendGrid account domain name
:user_name => 'username', # SendGrid user name
:password => 'password', # SendGrid password
:enable_starttls_auto => true,
:port => 587,
:authentication => :plain,
}
在 views/devise/mailer/reset_password_instructions.html.erb 中,确认链接如下所示:
<%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %>
单击忘记密码链接后,它成功发送了电子邮件,并且在 localhost 上的工作方式类似于魅力,但 url 主机指向www.mysite.com
而不是app.mysite.com
并引发 404 错误。
我怎样才能将它指向正确的主机?