Rails 4:image_tag不适用于电子邮件中的图像

时间:2014-06-13 02:16:12

标签: ruby-on-rails-4 asset-pipeline

这是我的代码:

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

发送电子邮件后,我在电子邮件客户端中查看该电子邮件时,图像未显示。它看起来像一个破碎的图像

其他人遇到过这个问题吗?

这是我的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

工作代码:

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

2 个答案:

答案 0 :(得分:0)

问题出在http‌​://localhost:3000/lo‌​gos/elan_logo.jpg。 Google会将此网址中的图片加载到其缓存中。 https://ci5.googleusercontent.com/proxy/PnNleEdztcmZ97Y2pmx8‌​mwGjwF2hMIx9009CdiWd‌​TaQy4n_1LunBEB86hfud‌​oeFGYYzGDog0NQr6skhr‌​ftog=s0-d-e1-ft#http‌​://localhost:3000/lo‌​gos/elan_logo.jpg会正确显示图片。

但Google无法访问localhost。

您应该更改config.action_mailer.asset_host = 'http://your_active_domain.com'

答案 1 :(得分:0)

在联系人邮件中添加图片作为填充

def sendCode(message,email)
 @message = "message: #{message} "
 attachments.inline['img1.png'] = File.read(Rails.root.join("public/emails", "img1.png"))
 attachments.inline['logo.png'] = File.read(Rails.root.join("public/emails", "logo.png"))
 mail(to: email, subject: 'Sample Email')
end

在html.erb文件中,您可以这样调用附件图片

<%= image_tag attachments['logo.png'].url, alt: 'image', class: 'photo' -%>

它将与您合作