2016-11-06 4 views
1

Apache WebサーバーにDjangoプロジェクトがデプロイされています。私はフォルダ/var/www/media/のメディアファイルを提供しています。私のメディアファイルは、自分のWebアプリケーションを使用しているときに大丈夫です。メディアファイルがDjangoでメールに読み込まれない

私は別の人にメールを送信する機能を持っています。そのメールでは、これらのメディアファイルは読み込まれますが、コンソールに404エラーが表示されます。

これは私が私の apache2.confファイルに追加するものです。

... 
STATIC_URL = '/static/' 
STATIC_ROOT = '/var/www/static/' 

MEDIA_URL = '/media/' 
MEDIA_ROOT = '/var/www/media/' 
... 

これは私のproduction.pyです:これは私のbase.pyファイルです

WSGIScriptAlias//home/search/egeirn/project/egeirn/wsgi.py 
WSGIPythonPath /home/search/egeirn/project:/home/search/virtualenvs/egerin/lib/python2.7/site-packages 

Alias /media/ /var/www/media/ 
Alias /static/ /var/www/static/ 

<Directory /var/www/static> 
Require all granted 
</Directory> 

<Directory /var/www/media> 
Require all granted 
</Directory> 

<Directory /home/search/egeirn/project/egeirn> 
<Files wsgi.py> 
Require all granted 
</Files> 
</Directory> 

manage.pyにロードされているファイルwsgi.py

from .base import * 

DEBUG = False 

ALLOWED_HOSTS = ['iro.egerin.com'] 

MEDIA_URL = 'http://iro.egerin.com/media/' 

電子メールのようにアプリケーションからメディアファイルを読み込むにはどうすればいいですか?ただ、アイデアにこれを与えるために

は、コンソールでのエラーです:

enter image description here

+0

プロジェクトのメディアURLを設定しましたか?urls.py –

答えて

0

あなたはメディアファイルを追加したテンプレートにサーバー名を追加するために見逃しています。あなたがテンプレートにMEDIA_URLを見逃している

<img src="{{MEDIA_URL}}{{path_of_image}}" /> 

: あなたの画像要素は、のようなものでなければなりません。

0

あなたが直接あなたが.urlを使用して、テンプレート内の画像にアクセスすることができ、プロジェクトのsettings.pyでMEDIA_ROOTを設定

urlpatterns += patterns('',url(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
          {'document_root': settings.MEDIA_ROOT, 'show_indexes': False}),) 

のurls.pyプロジェクトにメディアのURLを追加したことを確認してください({{instace.prodimage.url }}

+0

urls.pyにメディアURLを追加する目的は何ですか? – Sibtain

+0

を使用してデータベースからメディアファイルのパスを読み込みます(アプリケーションにメディアファイルをアップロードすると、そのファイルはモデルの作成が記載されたメディアフォルダに移動し、パスはモデルフィールドに格納されます) –

関連する問題