Django добавление слов к url изображения

Я хочу загрузить изображение в мой шаблон, используя:

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

Иногда он работает нормально, но как только я начинаю делать это из представления, он добавляет путь этого представления к моему src изображения автоматически, в результате чего изображение не загружается.

Я хочу, чтобы это было

src="images/item.jpg"

например, но из-за различных взглядов это может закончиться как

"view1/images/item.jpg" или

"anotherview/images/item.jpg"

приводит к тому, что Django не может найти изображение. Есть ли способ закодировать это так, чтобы имена представлений не добавлялись в src?

Вам следует использовать абсолютный URL, вы можете сделать это с помощью:

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

Обычно, если это FileField (или ImageField, который является подклассом FileField), вы можете позволить Django определить URL с помощью:

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

В этом случае Django будет использовать MEDIA_URL [Django-doc] и также будет обслуживать эти файлы. На производстве вам нужно будет настроить веб-сервер, такой как Apache, Nginx и т.д.; или позволить сети доставки контента (CDN) обслуживать эти файлы.

Вернуться на верх