Search code examples
ruby-on-railsemailgmailactionmailer

Broken static image links in emails with ruby on rails


I had broken images in gmail, I was doing nothing fancy, just things like:

image_tag "logo.png"

but the paths were relative or started with // instead of https:// or http://.


Solution

  • I ended up doing:

    In config/application.rb:

        if ENV["HOST"].present?
          config.action_mailer.default_url_options = { host: ENV.fetch("HOST") }
        end
    
        if ENV["BASE_URL"].present?
          config.action_controller.asset_host = ENV.fetch("BASE_URL")
          config.action_mailer.asset_host = ENV.fetch("BASE_URL")
        end
    

    In config/initializers/default_url_options.rb:

    if ENV["HOST"].present?
      Rails.application.routes.default_url_options[:host] = ENV.fetch("HOST")
      ActionMailer::Base.default_url_options = { host: ENV.fetch("HOST") }
    end
    

    with:

    HOST=socializus.app
    BASE_URL=https://socializus.app
    # HOST=localhost:3000
    # BASE_URL=http://localhost:3000