rails 配置邮件程序默认 url 选项未生效(开发环境)
rails config mailer default url options not taking effect (development environment)
我正在努力调整 url 出现在使用
创建的邮件中
<%= controller_url %>
但是当我使用以下命令更改默认值时
config.action_mailer.default_url_options = { :host => "example.com", :protocol => 'https', :subdomain => "www"}
url保持不变
http://localhost:8000/controller
这不起作用的可能原因有哪些?我仔细查看了我的项目文件夹,寻找可能定义主机或子域的地方,但一无所获。
编辑:
看来我需要在进行更改后重新启动我的服务器。
我不知道你是如何尝试的,但我可以展示我的文件与你的进行比较。
所以我的开发文件是/config/environments/development.rb
config.consider_all_requests_local = true
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
我的生产文件是 /config/environments/production.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => "https://example.com" } #=> Or https://www.example.com
config.action_mailer.perform_deliveries = true
ActionMailer::Base.smtp_settings = {
:user_name => ENV['USERNAME'],
:password => ENV['PASSWORD'],
:domain => 'example.com',
:address => 'smtp.example.net',
:port => 321,
:authentication => :plain,
:enable_starttls_auto => true
}
config.action_mailer.delivery_method = :smtp
并且运行良好。
记住这些:
- 开发文件仅在项目为开发模式时有效
- 只有当项目处于生产模式时,生产文件才有效
- 并确保在更改与配置相关的任何内容后重新启动服务器
您可以在发送邮件时查看日志,对于生产环境 运行 请遵循此命令 rails server -e production
我正在努力调整 url 出现在使用
创建的邮件中<%= controller_url %>
但是当我使用以下命令更改默认值时
config.action_mailer.default_url_options = { :host => "example.com", :protocol => 'https', :subdomain => "www"}
url保持不变
http://localhost:8000/controller
这不起作用的可能原因有哪些?我仔细查看了我的项目文件夹,寻找可能定义主机或子域的地方,但一无所获。
编辑: 看来我需要在进行更改后重新启动我的服务器。
我不知道你是如何尝试的,但我可以展示我的文件与你的进行比较。
所以我的开发文件是/config/environments/development.rb
config.consider_all_requests_local = true
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
我的生产文件是 /config/environments/production.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => "https://example.com" } #=> Or https://www.example.com
config.action_mailer.perform_deliveries = true
ActionMailer::Base.smtp_settings = {
:user_name => ENV['USERNAME'],
:password => ENV['PASSWORD'],
:domain => 'example.com',
:address => 'smtp.example.net',
:port => 321,
:authentication => :plain,
:enable_starttls_auto => true
}
config.action_mailer.delivery_method = :smtp
并且运行良好。
记住这些:
- 开发文件仅在项目为开发模式时有效
- 只有当项目处于生产模式时,生产文件才有效
- 并确保在更改与配置相关的任何内容后重新启动服务器
您可以在发送邮件时查看日志,对于生产环境 运行 请遵循此命令 rails server -e production