2016-10-19 1 views
1

Vous avez des images stockées dans le dossier assets/images de mon rail. J'ai besoin d'afficher ces images dans un e-mail envoyé à partir de mon application rails. Je peux envoyer un email mais les images apparaissent comme des liens brisés.Images ne se chargeant pas dans l'e-mail de l'application Rails

Mon fichier development.rb est indiqué ci-dessous:

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

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

Mon Mailer View est illustré ci-dessous:

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

Qu'est-ce que je fais mal ici? Dans la source originale d'email je vois la balise d'image référençant les dossiers exacts d'empreinte digitale aussi mais toujours il semble sembler cassé. Toute aide svp?

+0

utilisez image_url au lieu de image_tag. image_url ('banner.png') –

+0

@ShabiniRajadas Ceci imprime tout le chemin d'URL public dans mon courrier ne rend pas les images –

+0

Il suffit d'utiliser 'image_tag ('banner.png')' .. –

Répondre

2

S'il vous plaît essayez ce qui suit, Dans la méthode Mailer,

Pour exemple.

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 

Et dans vos vues, utilisez les touches suivantes,

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

Et si vous voulez toutes les options à passer en vous pouvez utiliser,

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

S'il vous plaît vérifier le document http://api.rubyonrails.org/classes/ActionMailer/Base.html sur les images en ligne.

1

Contrairement aux contrôleurs, l'instance de l'expéditeur n'a aucun contexte concernant la demande entrante. Vous devez donc fournir le paramètre: asset_host vous-même.

Comme le: asset_host est généralement cohérente dans l'application, vous pouvez le configurer globalement dans config/application.rb:

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

Vous pouvez maintenant afficher une image dans votre e-mail.

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

Cela ne résout pas le problème aussi –