2017-04-05 14 views
0

私はDjangoをWin7ホスト上のローカルバージンアーチマシン上で実行しています。 Djangoの環境変数を.envファイルに設定しました。私のアプリでは、すべての静的ファイルが正しく提供され、すべてが正常に動作します。django静的ファイルがHTML-EMailテンプレートに提供されていません

問題:私のHTMLメールテンプレートに静的なファイル(画像)を提供できません。今まで私はそれらをハードコードされたファイラーのURLとして提供していました。私はそれを変更したいと思います。

私はテンプレートにコンテキストとして、働いて証明されBASE_URL BASE_URL=http://127.0.0.1:8001を渡すといつものように、静的ロードしています:

{% load static %} 

をし、HTMLタグでそれを呼び出す:

<img src="{{BASE_URL}}{% static 'img/my_image.png' %}"> 

を受けて画像のURLはhttp://127.0.0.1:8001/static/img/my_image.pngですが、正しく表示されますが、404が表示されます。

何が欠けていますか?

(それは、画像が対応するフォルダにある場合、私に尋ねるいけないしてください。)すでに@dentemmで言っ

+1

あなたのウェブサイトはローカルVM上で実行されていますが、あなたのメールは「外部」に送信されています。ローカルの127.0.0.1 URLが役に立たないというあなたのVMの外。 – dentemm

+0

ホスト名を持って、 '/ etc/hosts'ファイルからホスト名マップを' 127.0.0.1'に設定する方がよいでしょう –

答えて

1

として:あなたのメールサービスプロバイダhttp://127.0.0.1:8001/static/img/my_image.pngから画像を取得しようとするが、彼はあなたの中にアドレスすることはできませんサーバーはローカルコンピュータからのみ表示されます。したがって、イメージは見つかりません。これを解決する1つの方法は、テンプレートをレンダリングしてテンプレートのスクリーンショットを取得し、それを電子メール本文に送信することです(正しくレンダリングするかどうかを確認する)。 here

もう1つの方法は、公開されているアクセス可能なサーバーにimgファイルをアップロードすることです。

+0

ありがとうございます。私は自分のマシン上のブラウザでブラウザが開かれていて、まだローカルホストにアクセスできると思った。 – J4ckN1x

+0

問題ありません。あなたは答えとして受け入れられるとマークすることができますか? – giaco

関連する問題