我正在尝试发送带有django 1.3图像的HTML电子邮件,但我的图片未加载。以下是我的view.py
email_data = {
# Summary data
'user_name':user_name,
'points':user.numOfPoints,
}
email_data = RequestContext(request, email_data)
t = get_template('user_email.html')
content = t.render(email_data)
msg = EmailMessage(subject='User Email', content, 'admin@company.com', ['user@gmail.com'])
msg.content_subtype = "html"
msg.send()
我的模板('user_email.html')如下所示
<html>
<body>
Hello {{user_name}},
Your point score is: {{points}}
Thank you for using our app.
<img src="{{ STATIC_URL }}images/footer.jpg" alt="" />
<body>
</html>
图像位于我的app文件夹的static / image文件夹中。但是当收到电子邮件时,它没有图像。
在我的settings.py中,我有以下内容
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.contrib.messages.context_processors.messages',
)
STATIC_URL = '/static/'
请回答我错过的内容?
谢谢,
答案 0 :(得分:3)
您需要指定完整的STATIC_URL
,例如http://localhost:8000/static/
。现在,消息指向/static/images/footer.jpg
,这不是有效的URL。
答案 1 :(得分:3)
正如漫游所提到的,你错过了主机名+端口。
对于那些使用Django的allauth包进行身份验证的人(https://www.djangopackages.com/packages/p/django-allauth/),您只需使用{{site}},例如:
<img src="{{site}}{{ STATIC_URL }}images/footer.jpg" alt="" />
或者更好的是,使用%static annotation:
{% load staticfiles %}
...
<img src="{{site}}{% static 'images/footer.jpg' %}" alt="" />