Ruby on rails 4 Rails 4:image_标记不适用于电子邮件中的图像

Ruby on rails 4 Rails 4:image_标记不适用于电子邮件中的图像,ruby-on-rails-4,asset-pipeline,Ruby On Rails 4,Asset Pipeline,以下是我的代码: 发送电子邮件时,我在电子邮件客户端中查看电子邮件时,图像不会显示。它看起来像一个破碎的图像 还有其他人遇到过这个问题吗 这是我的development.rb MyApp::Application.configure do # Settings specified here will take precedence over those in config/application.rb. # In the development environment your ap

以下是我的代码:

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

还有其他人遇到过这个问题吗

这是我的
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
工作代码:


问题出在
http中‌​://本地主机:3000/lo‌​gos/elan_logo.jpg
。谷歌将把这个url中的图像加载到他们的缓存中。和
https://ci5.googleusercontent.com/proxy/PnNleEdztcmZ97Y2pmx8‌​mwGjwF2hMIx9009CdiWd‌​TaQy4n_1LunBEB86hfud‌​oeFGYYzGDog0NQr6skhr‌​ftog=s0-d-e1-ft#http‌​://本地主机:3000/lo‌​gos/elan_logo.jpg
将正确显示图像

但谷歌无法访问localhost


您应该更改
config.action\u mailer.asset\u host=http://your_active_domain.com“

在contact mailer中将图像添加为一个配置

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


它将与您一起工作

您是否检查了图像是否仅存在于资产/图像文件夹中,而不存在于子文件夹中。还要检查它是.jpg还是.jpg..因为即使在加载图像时这也很重要是的,它们应该在哪里。如果我访问
http://localhost:3000/assets/logos/logo.jpg
在我的浏览器中,图像会显示“图像标签”,直接将您带到“资产/图像”文件夹。因此,请尝试将您的图像粘贴到上述文件夹中,并尝试使用

。。。看看它是否有效。这就是我的电子邮件客户端(Gmail)中显示的内容:
https://ci5.googleusercontent.com/proxy/PnNleEdztcmZ97Y2pmx8mwGjwF2hMIx9009CdiWdTaQy4n_1LunBEB86hfudoeFGYYzGDog0NQr6skhrftog=s0-d-e1-ft#http://localhost:3000/logos/elan_logo.jpg
图像显示为broken可以告诉您图像的确切路径..从rails folderIndeed的根,更新您的
asset\u主机
,并确保在URL中包含完整路径,包括
http://
https://