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

问题描述 投票:6回答:2

这是我的代码:

<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>

ruby-on-rails-4 asset-pipeline
2个回答
0
投票

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

但是Google无法访问本地主机。

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


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' -%>

它将与您合作

© www.soinside.com 2019 - 2024. All rights reserved.