Actionmailer URL添加了两次subdir

时间:2017-09-07 12:03:51

标签: ruby-on-rails nginx actionmailer

我有一个非常标准的rails 5.1 app,它安装在我们主域下的一个子目录下:

https://www.company.com/subir/

这是在routes.rb

中完成的
scope :subdir 
  the other routes
end

我在DMZ中使用NGINX将传入的请求传递给我的应用服务器:

...
server_name www.company.com;

 location /subdir {
   proxy_pass https://my-app-server;
 }
...
我的app-server上的

安装了非常常见的组合Nginx / Puma,几乎一切正常,除了我通过动作邮件发送的电子邮件中的网址。

在我看来,我有一个链接:

link_to 'approve customer', admin_customer_url(@customer) 

这会创建以下内容:

https://www.company.com/**subdir/subdir**/admin/customer/:id

在我的本地计算机上,这些链接在我的电子邮件中正确生成,但不在我的应用服务器上的暂存环境中生成。

我将请求对象转储到视图中以查看我的nginx设置是否疯狂,但没有任何明显的疯狂......

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

检查您的环境文件中是否设置了config.action_mailer.default_url_options。 http://api.rubyonrails.org/classes/ActionMailer/Base.html

答案 1 :(得分:0)

对于记录:在deploy / staging.rb中,我仍然导出ENV [' RAILS_RELATIVE_URL_ROOT']。这将子目录添加到app.base_path两次,这导致了我的问题。