Ruby on rails 设计4.2发送密码说明电子邮件链接到错误名称未解决页面

Ruby on rails 设计4.2发送密码说明电子邮件链接到错误名称未解决页面,ruby-on-rails,devise,devise-recoverable,Ruby On Rails,Devise,Devise Recoverable,我已经使用Rails 4.2.7.1成功地设置了Desive 4.2“可恢复”模块。用户体验如下: 用户来到该站点,进入登录页面,单击“帮助,我忘记了密码。” 用户将被发送到后续页面,在该页面中输入其电子邮件地址。如果地址被接受,他们会通过电子邮件(我们称之为“恢复电子邮件”)发送一个链接,指向他们可以去重置密码的地方 我的问题在于恢复电子邮件的正文。里面的一切都正常!但是,“我的网站”的链接忽略了网站名称中的“www”,导致链接到的页面显示以下错误: 无法访问此网站 找不到example.co

我已经使用Rails 4.2.7.1成功地设置了Desive 4.2“可恢复”模块。用户体验如下:

  • 用户来到该站点,进入登录页面,单击“帮助,我忘记了密码。”
  • 用户将被发送到后续页面,在该页面中输入其电子邮件地址。如果地址被接受,他们会通过电子邮件(我们称之为“恢复电子邮件”)发送一个链接,指向他们可以去重置密码的地方
  • 我的问题在于恢复电子邮件的正文。里面的一切都正常!但是,“我的网站”的链接忽略了网站名称中的“www”,导致链接到的页面显示以下错误:

    无法访问此网站 找不到example.com的服务器DNS地址。 错误\u名称\u未\u解析

    如果我按照该邮件正文中的链接进入该页面,我将得到该错误

    生成的链接是
    http://example.com/admin/users/password/edit.10?reset_password_token=NfGEHb3z6uF7qPyqd79V

    奇怪的是,如果我手动将“www”添加到这个错误页面的地址栏中,一切都会很好。即以下工作:

    http://www.example.com/admin/users/password/edit.10?reset_password_token=NfGEHb3z6uF7qPyqd79V

    如果我删除除以下内容以外的所有内容,该功能也会起作用:
    http://example.com/admin/

    注意,在这种情况下,我省略了“www”,但它仍然有效

    以下是恢复电子邮件的代码:

    <p>Hello <%= @resource.email %>!</p>
    
    <p>Someone has requested a link to change your password. You can do this through the link below.</p>
    
    <p><%= link_to 'Change my password', edit_admin_user_password_url(@resource, :reset_password_token => @token) %></p>
    
    <p>If you didn't request this, please ignore this email.</p>
    <p>Your password won't change until you access the link above and create a new one.</p>
    
    一些可能不相关的细节:

    • 该网站位于Heroku上
    • 我测试的电子邮件客户端是GMail
    • DNS和域内容是AWS路由53

    有人知道我做错了什么吗?

    您可以在不更改代码的情况下解决这个问题。如果您告诉您的DNS www.example.com和example.com解析到同一个服务器,您应该不会有问题

    root :to => 'pages#index'
    
    devise_for :users, {:class_name => "User", :module => :devise, :controllers => { :sessions => "admin/sessions" } }
    resources :users
    
    namespace :admin do
      devise_for :users, {:class_name => "User", :module => :devise, :controllers => { :sessions => "admin/sessions" } }
      resources :users, :properties, :locations, :pages, :companies, :islands, :tags, :property_types, :articles, :announcements, :features
      resources :agents,         :controller => "users"
      resources :administrators, :controller => "users"
      resources :superadmins,    :controller => "users"
      resources :photos do
        collection do
          delete 'destroy_multiple'
        end
      end
    end