ActionMailerで送信したメールに絶対パスで画像を表示させたい中でハマった。
Mail内で以下のように表示させるために
index.html
<img src="http://myfullappurl.dev/assets/myimage.png">
development.rbにて以下のようにメーラーを設定
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' }
しかしmail内でのhtmlでは
index.html
<img src="//myfullappurl.dev/assets/myimage.png">
とプロトコルが表示されない。railsコードに
asset_url_helper.rb
URI_REGEXP = %r{^[-a-z]+://|^(?:cid|data):|^//}
有効なActionMailer URIを定義する正規表現があるようで
development.rb
config.action_controller.asset_host = 'myfullappurl.dev'
config.action_mailer.asset_host = 'http://myfullappurl.dev'
にしなければならない。
https://codeday.me/bug/20180720/199491.html
https://stackoverflow.com/questions/29887668/how-to-use-image-url-in-rails-to-show-images-in-production