首页 > 解决方案 > Django将单词添加到图像url

问题描述

我想使用以下方法在我的模板上加载图像:

<img src="{{ item.pic }}">

它有时可以正常工作,但是一旦我从视图开始执行此操作,它就会自动将该视图的路径添加到我的图像 src 中,从而导致图像无法加载。

我希望它是

src="images/item.jpg"

例如,但由于不同的观点,它可能最终成为

"view1/images/item.jpg"或者

"anotherview/images/item.jpg"

导致 Django 无法找到图像。有没有办法对其进行编码,以便不会将视图名称添加到 src 中?

标签: htmldjangodjango-modelsdjango-viewsdjango-templates

解决方案


您应该使用绝对 URL,您可以这样做:

<img src="/{{ item.pic }}">

通常,如果这是 a FileField(或者ImageField是 a 的子类FileField),您可以让 Django 确定 URL:

<img src="{{ item.pic.url }}">

在这种情况下,Django 将使用MEDIA_URL[Django-doc]并提供这些文件。在生产中,你需要配置一个像 Apache、Nginx 等的网络服务器;或者让内容交付网络 (CDN) 为这些文件提供服务。


推荐阅读