django静态文件未提供给HTML-EMail模板

时间:2017-04-05 07:41:01

标签: django static django-templates html-email django-cms

我在Win7主机上的本地Vagrant arch机器上运行Django。我在.env文件中设置了Django的环境变量。在我的应用程序中,所有静态文件都正确提供,一切正常。

问题:我无法在html-email模板中提供静态文件(图像)。到目前为止,我将它们作为硬编码的文件管理器URL服务,我想改变它。

我正在传递被证明有效的BASE_URL {{ ('514 S. Magnolia St. - 32806 - Orlando - FL' | split('-', 3))[2] }} 作为模板的上下文并像往常一样加载静态:

BASE_URL=http://127.0.0.1:8001

并在HTML标记中调用它:

{% load static %} 

在收到的电子邮件中,图片的网址为explode,该网址看起来正确但会触发404.

我错过了什么?

(请不要问我图像是否在相应的文件夹中,它是;)

1 个答案:

答案 0 :(得分:2)

正如@dentemm已经说过的那样:您的电子邮件服务提供商尝试从http://127.0.0.1:8001/static/img/my_image.png获取图片,但他不能在您的服务器地址只能从您的本地计算机上看到。因此找不到图像。解决此问题的一种方法是渲染模板并获取模板的屏幕截图并将其发送到电子邮件正文中(以查看它是否正确呈现)例如。 here

另一种方法是将img文件上传到某些可公开访问的服务器。