3

devise Mailer テンプレートから呼び出そうとしてimage_tag "image.jpg"いますが、電子メールが送信されたため、画像へのパスが電子メールで壊れているように見えます。(絶対URLを含めないため)。

これを解決するための最良のアイデアは何ですか?

4

2 に答える 2

2

Rails 4 で最も簡単な方法は、以下を追加することです。

  1. config/environments/development.rb

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

  2. config/environments/production.rb

    config.action_mailer.asset_host = " http://yourdomain.com "

電子メールは Web サーバーでホストされるページではなく、アプリケーションによって smtp または他のメール サーバーに中継されるだけなので、これは基本的に、メール アセットをホストしている場所を Rails サーバーに伝えます。また、ほとんどの場合、メール アセットをレールから、具体的にはレールが使用する同じアセット パスから提供したいと考えています。

これを行うと、image_tag を使用するだけで画像にアクセスできます。

于 2015-07-03T04:22:57.187 に答える
1

リンクを作成するのと同じ方法で、メーラーに :host 属性を設定できます。

グローバルに実行するには、環境構成内で次のように実行できます

config.action_mailer.default_url_options = { :host => "example.com" }

http://api.rubyonrails.org/classes/ActionMailer/Base.htmlをご覧ください

詳細については

于 2012-05-07T21:55:35.490 に答える