Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails 4: image_tag not working for images in emails

Here is the code I have:

<p><%= image_tag "/assets/logos/#{@company_name.downcase}_logo.jpg" %></p>

When the email is sent, and I view the email in my email client, the image is not showing up. It appears like a broken image

Anyone else run into this issue?

Here is my development.rb

MyApp::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false

  # Show full error reports and disable caching.
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send.
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger.
  config.active_support.deprecation = :log

  # Raise an error on page load if there are pending migrations
  config.active_record.migration_error = :page_load

  # Debug mode disables concatenation and preprocessing of assets.
  # This option may cause significant delays in view rendering with a large
  # number of complex assets.
  config.assets.debug = true

  config.action_controller.asset_host = 'localhost:3000'
  config.action_mailer.asset_host = 'http://localhost:3000'
end

Working code:

<p><%= image_tag("logos/#{@company_name.downcase}_logo.jpg") %></p>

like image 273
dennismonsewicz Avatar asked Jun 13 '14 02:06

dennismonsewicz


1 Answers

Problem is in http‌​://localhost:3000/lo‌​gos/elan_logo.jpg. Google will load image from this url to their cache. And https://ci5.googleusercontent.com/proxy/PnNleEdztcmZ97Y2pmx8‌​mwGjwF2hMIx9009CdiWd‌​TaQy4n_1LunBEB86hfud‌​oeFGYYzGDog0NQr6skhr‌​ftog=s0-d-e1-ft#http‌​://localhost:3000/lo‌​gos/elan_logo.jpg will display image correctly.

But Google can't access to localhost.

You should change config.action_mailer.asset_host = 'http://your_active_domain.com'

like image 138
babie Avatar answered Sep 28 '22 08:09

babie