2016-10-19 15 views
1

rails assets/imagesフォルダに保存されている画像があります。私は私のレールアプリから送られた電子メールでこれらの画像を表示する必要があります。私は電子メールを送信することができますが、画像は壊れたリンクとして表示されます。Railsアプリケーションからメールに画像がロードされない

マイdevelopment.rbファイルを以下に示します。

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

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

私のメーラービューを以下に示します。私はここで間違って

<div class = "container"> 
    <%= image_tag(asset_path('com_name.jpg')) %> 
</div> 

<div class = "container"> 
    <%= image_tag(asset_path('banner.png')) %> 
</div> 

<h4>Hi! This mail is to inform you that your request has been successfully processed and the processed output has been attached along with your mail for your perusal</h4> 

<h4>Looking forward to serve you once again.</h4> 

<h5>Thanks,</h5> 
<h4>Team Introhive</h4> 

何をしているのですか?元の電子メールソースでは、正しい指紋ファイルを参照しているイメージタグを参照してください。でも、まだ破損しているようです。

+0

image_tagの代わりにimage_urlを使用します。 IMAGE_URL( 'banner.png') –

+0

@ShabiniRajadasこれは '.. –

+0

ちょうど' IMAGE_TAG( 'banner.png')を使用し画像をレンダリング私のメールdoesntの全体のパブリックURLパスを出力didntはヘルプのいずれか –

答えて

2

などについては、以下のことを試してくださいメーラー方法で 、

してください。

class NotifierMailer < ApplicationMailer 
    def welcome(recipient) 
    attachments.inline['photo.png'] = File.read('path/to/photo.png') 
    mail(to: recipient, subject: "Here is what we look like") 
    end 
end 

そして、あなたの意見では、以下を使用し、

<%= image_tag attachments['photo.png'].url -%> 

そして、あなたはあなたの中に渡される任意のオプションがこれを使用することができますしたい場合は、

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

文書http://api.rubyonrails.org/classes/ActionMailer/Base.htmlをご確認くださいインライン画像上。

1

コントローラとは異なり、メーラーインスタンスには着信要求に関するコンテキストがありませんので、自分自身で:asset_hostパラメーターを指定する必要があります。以下のよう

:asset_hostは通常、アプリケーション全体で一貫しているあなたは、設定/ application.rbでグローバルに設定することができます。

config.action_mailer.asset_host = 'http://example.com' 

は今、あなたはあなたの電子メール内の画像を表示することができます。

<%= image_tag 'image.jpg' %> 
+0

これも解決しません –

関連する問題