Django将单词添加到图像url

Posted

技术标签:

【中文标题】Django将单词添加到图像url【英文标题】:Django adding words to image url 【发布时间】:2021-11-08 06:46:20 【问题描述】:

我想在我的模板上加载图片:

<img src=" item.pic ">

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

我希望它是

src="images/item.jpg"

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

"view1/images/item.jpg"

"anotherview/images/item.jpg"

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

【问题讨论】:

【参考方案1】:

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

&lt;img src="<strong>/</strong> item.pic "&gt;

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

&lt;img src=" item.pic<strong>.url</strong> "&gt;

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

【讨论】:

感谢您的回答!添加 .url 似乎并没有解决问题,因为它仍然使 url 与图像 url 中的路径保持一致。此外,我的设置中有“MEDIA_URL = '/media/'”,但图片网址中没有“媒体”。有没有一种方法可以让图像 url 类似于“media/images/item.jpg”,而不管我要经过哪条路径?目前路径名被添加到我的图片 url 前面,而 ​​Django 找不到图片。 @VaultDweller:您是否将媒体网址添加到urls.py @VaultDweller:见docs.djangoproject.com/en/3.2/howto/static-files/… 是的,我做到了。我没有收集静态文件,因为我知道本地服务器不需要。 哇,这听起来很奇怪,但是使用 item.pic.url 格式开始起作用了!只是出于好奇,知道为什么它一开始可能不起作用但后来起作用了吗?无论如何,感谢您的帮助!

以上是关于Django将单词添加到图像url的主要内容,如果未能解决你的问题,请参考以下文章

显示图像 URL Django

Django 在图像字段的模板中添加 %2f 代替 /

如何在表单提交之前将多个图像异步添加到 django 表单

将 ID 添加到 URL 时,django-cors-headers 不起作用

为啥每当我尝试将图像添加到我的 django 项目时都会出错?

如何避免 Django 将 url 链接添加到链接后面的每个 html 元素