我希望使用 ActionMailer 发送的电子邮件包含链接回我的应用程序的图像。在我的开发环境中,例如:
<img src="http://myfullappurl.dev/assets/myimage.png">
我的 development.rb 中有这个
config.action_controller.asset_host = 'myfullappurl.dev'
config.action_mailer.asset_host = config.action_controller.asset_host
config.action_mailer.default_url_options = { host: 'myfullappurl.dev', only_path: false }
但我无法让我的邮件模板以以下任何一种方式呈现完整的 URL:
asset_path('myimage.png')
asset_path('myimage.png', only_path: false)
image_url('myimage.png')
通过执行以下操作可以回答有关此主题的许多类似问题:
"#{request.protocol}#{request.host_with_port}#{asset_path('image.png')}"
但是因为我的邮件是使用 Sidekiq 异步发送的,所以request
如果它们在控制器中同步发送,就不会有任何对象。
我是否缺少明显的东西,或者我是否必须与 Rails 对抗才能做到这一点?我正在使用 Rails 4,但我确信在 3.1/3.2 中工作的任何东西都可以正常工作。