媒体文件未在Django中的电子邮件中加载

时间:2016-11-06 21:15:09

标签: python django apache email django-staticfiles

我在Apache Web服务器上部署了一个Django项目。我在文件夹/var/www/media/中提供媒体文件。我在我的网络应用程序时,我的媒体文件加载正常。

我有一个功能,可以向不同的人发送电子邮件。在那封电子邮件中,这些媒体文件应该加载,但它们在控制台中显示404错误。

这是我在 apache2.conf 文件中添加的内容:

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>

这是我的 base.py 文件:

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

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

这是我的 production.py 文件,该文件以 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

2 个答案:

答案 0 :(得分:0)

您错过了在添加了媒体文件的模板中添加服务器名称。 你的图像元素应该是这样的:

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

您错过了模板中的media_url。

答案 1 :(得分:0)

确保您已在项目urls.py

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

在项目settings.py中设置MEDIA_ROOT,然后直接使用.url{{instace.prodimage.url }}

访问模板中的图像